2

我正在读取数据并计算组的平均值,然后将数据保存到其他文件。问题是我只想选择一些列写入该文件,目前它给了我错误,所以我必须将所有内容保存到文件中,然后重新打开,选择列并再次写入。

此代码不起作用:

df = pd.read_csv("./file.csv")
grouped = df.groupby(['Condition','ID','BeginEnd'])
agg = grouped.mean()
agg = agg[['Condition','ID','BeginEnd3','KnowledgeScore']]
agg.to_csv('file2.csv')

我必须这样做:

df = pd.read_csv("./file.csv")
grouped = df.groupby(['Condition','ID','BeginEnd'])
agg = grouped.mean()
agg.to_csv('file2.csv')
df3 = pd.read_csv('file2.csv')
df3 = df3[['Condition','ID','BeginEnd3','KnowledgeScore']]
df3.to_csv('file2.csv')
4

1 回答 1

6

您没有发布您尝试过的不起作用的代码或错误消息的完整回溯,所以我们不得不猜测问题是什么。(“目前它给了我错误”不是很有用。)我假设你尝试过类似的东西

agg = agg[['Condition','ID','BeginEnd3','KnowledgeScore']]

那是行不通的,因为分组后,您分组的列成为索引的一部分(print agg.index查看)而不是列(print agg.columns)。您可以使用以下命令再次将它们提升为列reset_index

agg = grouped.mean().reset_index()

例子:

>>> df
   A  B  C
0  0  2  6
1  0  2  7
2  1  3  8
3  1  4  9
>>> grouped = df.groupby(["A", "B"])
>>> agg = grouped.mean()
>>> agg
       C
A B     
0 2  6.5
1 3  8.0
  4  9.0
>>> agg = agg.reset_index()
>>> agg
   A  B    C
0  0  2  6.5
1  1  3  8.0
2  1  4  9.0
于 2013-10-24T11:31:59.280 回答