将pandas Dataframe行转换为字符串列表

时间:2016-07-10 18:35:33

标签: python pandas

如何将Pandas数据帧的行转换为字符串列表?我想将每行数据框映射到字符串中,例如它包含列的名称和所选数据框列的列值:

例如我想将B,C,D列转换为字符串列表(结果),如下所示:

import pandas as pd
A=[1,2,3,4]
B=[5,6,7,8]
C=[2,3,4,5]
D=[4,5,6,7]
df=pd.DataFrame(data=[A,B,C,D]).transpose()
df.columns=['A','B','C','D']
print df

   A  B  C  D
0  1  5  2  4
1  2  6  3  5
2  3  7  4  6
3  4  8  5  7

result=['B:5,C:2,D:4','B:6,C:3,D:5','B:7,C:4,D:6','B:5,C:2,D:4','B:8,C:5,D:7']
print
print result

['B:5,C:2,D:4', 'B:6,C:3,D:5', 'B:7,C:4,D:6', 'B:5,C:2,D:4', 'B:8,C:5,D:7']

编辑:字符串的格式不需要与我的示例完全相同,只要它包含列名和值

1 个答案:

答案 0 :(得分:2)

不确定这是否是最好的方式,但这会做你想要的:

cols = ["B", "C", "D"]
[",".join("{}:{}".format(*t) for t in zip(cols, row)) for _, row in df[["B", "C", "D"]].iterrows()]

哪个会给你:

['B:5,C:2,D:4', 'B:6,C:3,D:5', 'B:7,C:4,D:6', 'B:8,C:5,D:7']