如何将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']
编辑:字符串的格式不需要与我的示例完全相同,只要它包含列名和值
答案 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']