Dataframe.from_dict和Dataframe异同
二者异同
默认参数下二者没有区别:
df = pd.DataFrame({'订单号':['A1001','B1002'],
'产品':['电视', '电脑'],
'金额':[8700, 11000]})
df
订单号 产品 金额
0 A1001 电视 8700
1 B1002 电脑 11000
data = pd.DataFrame.from_dict({'订单号':['A1001','B1002'],
'产品':['电视', '电脑'],
'金额':[8700, 11000]})
data
订单号 产品 金额
0 A1001 电视 8700
1 B1002 电脑 11000
区别
以上的2种情况,构造DataFrame的dict里的键值是作为DataFrame里的列名,而DataFrame.from_dict可以通过更改参数将的dict里的键值变成DataFrame的行索引:
data = pd.DataFrame.from_dict({'订单号':['A1001','B1002'],
'产品':['电视', '电脑'],
'金额':[8700, 11000]},orient='index')
data
0 1
订单号 A1001 B1002
产品 电视 电脑
金额 8700 11000
DataFrame.from_dict的orient参数默认是orient=‘columns’,默认情况下,就跟DataFrame没区别。
DataFrame.from_dict还有另外一个参数是columns,当orient=‘index’时可以设置columns参数,当orient='columns’时就不能设置了,否则会报错,因为orient='columns’表示你已经把dict的键值设为列名了,再设columns参数就多余了。正确做法如下:
data = pd.DataFrame.from_dict({'订单号':['A1001','B1002'],
'产品':['电视', '电脑'],
'金额':[8700, 11000]},orient='index',columns=['列1','列2'])
data
列1 列2
订单号 A1001 B1002
产品 电视 电脑
金额 8700 11000
Dataframe也可以实现DataFrame.from_dict(orient=‘index’)的效果,在后面加“.T”转置一下即可,这样就列变行,再重新设置下列名:
df = pd.DataFrame({'订单号':['A1001','B1002'],
'产品':['电视', '电脑'],
'金额':[8700, 11000]}).T
df.columns = ['列1', '列2']
df
列1 列2
订单号 A1001 B1002
产品 电视 电脑
金额 8700 11000
总结
偷懒,就不总结了,本人小白,如有错误,欢迎指正!