python - Pandas Dataframe 到键值对和 csv 格式

标签 python arrays pandas dictionary dataframe

我有一个如下所示的数据框。

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

我想要这两种格式 - 格式 1-

0, a, 1
0, b, 10
0, c, 100

1, a, 20
1, b, 200
1, c, 300

格式 2-

a=1
b=10
c=100

a=20
b=200
c=300

我可以转换为 dict 并进行一些迭代,但不确定这是否是最佳方法。

df1.to_dict()
{'a': {0: 1, 1: 20}, 
 'b': {0: 10, 1: 200}, 
 'c': {0: 100, 1: 300}
}

我怎样才能改变这个-

0       a=1
1     b=10
2    c=100
3     a=20
4    b=200
5    c=300

回到

        a    b    c
   0   1   10  100
   1  20  200  300

最佳答案

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

转换回来

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

关于python - Pandas Dataframe 到键值对和 csv 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49014811/

相关文章:

Python,将Popen的流重定向到python函数

python - json 值在 if in 内按键进行打印,但不能没有

python - python bigquery 库 DB-API 接口(interface)如何支持 WHERE IN 或 WHERE ANY 子句

c - Printf 未显示并返回值 3221225477

c - 当 p 指向一个数组(int)索引时, '-1[p]' 是什么?

python - 根据 df1 上的条件以及 df2 或 df3 的报告值创建 pd 系列

python - Pandas :按两列分组并计算第二列所有值的出现次数

python - 如何以更Pythonic的方式解码莫尔斯电码

php - 对照另一个数组检查数组

python - 类型错误 : tan^-1 (tan inverse) of the ratio of two dataframe column