繁体   English   中英

将熊猫dataframe列写入csv行交错

[英]writing pandas dataframe columns to csv rows staggered

我有一个三列的熊猫数据框,例如:A,B,C,我想重新排列数据并将其输出为CSV,以便C中所有在A中具有相同值的值共享一行。 因此,例如,如果我的代码块设计如下(例如,不是我这样设计的话):'

 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 ,,

要么:

1,10,23,32

2,41,11,

3,29 ,,

4,43,52,

要么:

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是列表列表。 因此,我们可以将其转换为Pandas数据框,然后保存到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 )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM