[英]Pandas Dataframe to key value pairs and csv format
I have a dataframe like below. 我有一个如下的数据框。
df1 = pd.DataFrame({'a': [1, 20],
'b': [10, 200],
'c': [100, 300]})
print(df1)
a b c
0 1 10 100
1 20 200 300
I want to have it in these 2 formats - Format 1- 我希望有这两种格式 - 格式1-
0, a, 1
0, b, 10
0, c, 100
1, a, 20
1, b, 200
1, c, 300
Format 2- 格式2-
a=1
b=10
c=100
a=20
b=200
c=300
I could convert to dict and do some iteration but not sure if that is the best approach. 我可以转换为dict并进行一些迭代,但不确定这是否是最好的方法。
df1.to_dict()
{'a': {0: 1, 1: 20},
'b': {0: 10, 1: 200},
'c': {0: 100, 1: 300}
}
How can i change this - 我怎么能改变这个 -
0 a=1
1 b=10
2 c=100
3 a=20
4 b=200
5 c=300
back to 回到
a b c
0 1 10 100
1 20 200 300
IIUC, since the column name is not important to u, I a not change it IIUC,因为列名对你来说并不重要,我不会改变它
s=df1.stack().reset_index()
s
Out[140]:
level_0 level_1 0
0 0 a 1
1 0 b 10
2 0 c 100
3 1 a 20
4 1 b 200
5 1 c 300
New=s.level_1+'='+s[0].astype(str)
New
Out[142]:
0 a=1
1 b=10
2 c=100
3 a=20
4 b=200
5 c=300
dtype: object
Convert it back 转换回来
s=s.str.split('=',expand=True)
s.assign(i=s.groupby(0).cumcount()).pivot('i',0,1)
Out[208]:
0 a b c
i
0 1 10 100
1 20 200 300
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.