我有一个 CSV 文件,其中包含 $n=100$ 个元素。所以该文件看起来像一个 $n$ 维向量。问题是:如何平均每 4 个元素并将结果保存在新的 csv 文件中?
例如,我生成一个随机数列表:
import random
my_random_list = []
for i in range(0,9):
n = random.randint(1,100)
my_random_list.append(n)
df = pd.DataFrame(my_random_list)
df.to_csv('my_csv.csv', index=False, header=None)
这与我的代码类似。现在,我想创建一个新的 csv(因为我已经有 csv 形式的数据),在其中平均并保存前 4 个元素,然后保存下 4 个元素,依此类推。所以我最终会得到一个只有 25 个元素的 csv 文件.
最佳答案
使用DataFrame.groupby
4 个值组的索引的整数除法和聚合平均值
:
np.random.seed(2021)
df = pd.DataFrame({'a':np.random.randint(1,10, size=10)})
print (df)
a
0 5
1 6
2 1
3 7
4 6
5 9
6 7
7 7
8 7
9 7
df1 = df.groupby(df.index // 4).mean()
print (df1)
a
0 4.75
1 7.25
2 7.00
详细信息:
print (df.index // 4)
Int64Index([0, 0, 0, 0, 1, 1, 1, 1, 2, 2], dtype='int64')
一起:
df = pd.read_csv(file, header=None)
df1 = df.groupby(df.index // 4).mean()
df1.to_csv('my_csv.csv', index=False, header=None)
关于python - 对 CSV 文件中的每四个元素求平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66219285/