python - 对 CSV 文件中的每四个元素求平均值

标签 python pandas csv average

我有一个 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/

相关文章:

python - 来自 tab10 的 matplotlib 通用颜色图

python - 静态库的ctypes?

python |自动数据帧生成

python - 如何将数据框转换为嵌套字典?

python - 鳄梨数据框的 For 循环

python - 如果变量的值在 python 中发生变化,如何打印语句?

python read(4) 返回长度为 1 而不是 4 的字符串

c# - SqlBulkCopy 在运行 WriteToServer(DataTable) 时抛出 System.FormatException

pandas - 计算列表中的每个项目在以逗号分隔的值的pandas数据框列中出现的次数

mysql - 如何使用 LOAD DATA INFILE 将 CSV 文件中的选定列插入 MySQL 数据库