写熊猫dataframe列csv行交错
问题描述:
我有一个有三列的熊猫数据框,说:A,B,C和我想重新排列数据并将其输出为CSV,以便C中的所有值具有相同的价值在A共享一行。因此,举例来说,如果我的代码块设计如下(例如,不,我会设计这样说):”写熊猫dataframe列csv行交错
check=pd.DataFrame(columns=['A','B', 'C'])
for i in range(8):
check.loc[1]=[1,11,10]
check.loc[2]=[1,21,23]
check.loc[3]=[1,23,32]
check.loc[4]=[2,21,41]
check.loc[5]=[2,21,11]
check.loc[6]=[3,21,29]
check.loc[7]=[4,21,43]
check.loc[8]=[4,21,52]
` 我所要的输出看像在CSV下列之一: 此:
1 ,,,
10,23,32,
2 ,,,
41,11 ,,
3 ,,,
29 ,,,
4 ,,,
43,52 ,,
OR:
1,10,23,32
2,41,11,
3,29 ,,
4,43,52,
OR:
10,23,32,
41,11 ,,
29 ,,,
43,52 ,,
非常感谢您的任何建议。
答
呃......有点难以理解你真正在做的事情。但看起来你根本没有输出B
列。第一步是以可接受的方式安排数据。对于A
的每个值,这似乎是一排。然后导出。
获取上一个示例输出的一种方法是创建一个列表,其中每个列表项是所需的行。我会做到这一点通过A
对数据进行分组,然后在组迭代:
g = check.groupby('A')
bigList = []
for group in g:
rowList = []
for c in group[1].C.iteritems():
rowList.append(c[1])
bigList.append(rowList)
现在bigList
是列表的列表。所以,我们就可以将其转换成一个数据帧的熊猫,然后保存到CSV:
outData = pd.DataFrame(bigList)
outData.to_csv('myFile.csv', index=False)
你可以采取上述循环,并修改它做你的其他的例子还有。这会做你的第二个:
bigList = []
for group in g:
rowList = []
rowList.append(group[0])
for c in group[1].C.iteritems():
rowList.append(c[1])
bigList.append(rowList)