请问如何用python在CSV的最后生成一行,这一行表示的是每一列的平均值(或方差)
嗯?
import pandas as pd
data = {'name': [82, 76,85, 94],
'percentage': [90, 99, 50, 65],
'grade': [88, 76, 95, 79]}
df = pd.DataFrame(data)
df2 = df[['percentage','grade']].copy()
df2.loc[len(df)] = list(df2.mean())
df.append(df2.loc[len(df2)-1])
先从CSV中读出数据,假设不包含标题,得到的是一个二维列表,然后用循环计算每列数据的平均值或方差,保存在列表里,最后再用append的方式打开CSV文件,把这个列表写入即可。
以下为示例代码
import csv
with open('data.csv','r') as f:
r = csv.reader(f)
data = [row for row in r]
avg = []
for j in range(len(data[0])):
s = 0
for i in range(len(data)):
s += eval(data[i][j])
avg.append(s/len(data))
with open('data.csv','a') as f:
w = csv.writer(f)
w.writerow(avg)