python在csv最后生成一行

请问如何用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)