错误方法
import pandas as pd
row = {'name' : "index","age" : 20,"dict" : "hunan"}
data=pd.DataFrame(row)
ValueError: If using all scalar values, you must pass an index
个人理解:错误原因是不能用单值(一列的意思,即把键当做行索引,值当作一列,或者键当做列索引,把值当作一行)构建DataFrame,scalar就是单值的意思,它的反面比如列表,字典等等,这些都可以创建多列数据.
解法方法1
使用items()函数, items() 函数以类似列表的方式返回可遍历的(键, 值) 元组数组。
import pandas as pd
row = {'name' : "index","age" : 20,"dict" : "hunan"}
data=pd.DataFrame(row.items())
print(data)
输出:
0 1
0 name index
1 age 20
2 dict hunan
或者:
import pandas as pd
row = {'name' : "index","age" : 20,"dict" : "hunan"}
data=pd.DataFrame(row.items(),columns=['属性','值'])
print(data)
输出:
属性 值
0 name index
1 age 20
2 dict hunan
解决方法2
设置行的索引
import pandas as pd
row = {'name' : "index","age" : 20,"dict" : "hunan"}
data=pd.DataFrame(row,[0])
print(data)
输出:
name age dict
0 index 20 hunan
解决方法3
把标量值(scalar value)改成列表
import pandas as pd
row = {'name' : ["index"],"age" : [20],"dict" : ["hunan"]}
data = pd.DataFrame(row)
print(data)
输出:
name age dict
0 index 20 hunan
解决方法4
使用Series也可以达到效果
import pandas as pd
row = {'name' : "index","age" : 20,"dict" : "hunan"}
data = pd.Series(row)
print(data)
输出:
name index
age 20
dict hunan
dtype: object
解决方法5
使用DataFrame.from_dict()函数
import pandas as pd
row = {'name' : ["index"],"age" : [20],"dict" : ["hunan"]}
data = pd.DataFrame.from_dict(row)
print(data)
输出:
name age dict
0 index 20 hunan