使用orient='index'从字典创建pandas数据帧并设置列名

30

我已经查看了这个问题: pandas create named columns in dataframe from dict。但是,我的例子略有不同。

我有一个字典: my_dict = {'key1' : [1,2,3], 'key2' : [4,5,6], 'key3' :[7,8,9]}

然后我创建了一个 pandas 数据框:df = pd.DataFrame.from_dict(my_dict, orient='index'),其中是按行排列的。但是,当我写入 columns = ['one', 'two', 'three'] 时,就会出现错误,就像上面的链接中一样。

如何给它们命名?


3
在您提供的链接中已经回答了解决方法(仅比原问题少一列)。只需查看被接受的答案:pd.DataFrame(list(my_dict.iteritems()),columns=['business_id','business_code']),所以根据您的情况 pd.DataFrame(list(my_dict.iteritems()),columns=['one','two','three']) (感谢Andy Hayden)。 - C.Fe.
3个回答

38

你不能在下一行设置列名的原因是什么?

my_dict = {'key1' : [1,2,3], 'key2' : [4,5,6], 'key3' :[7,8,9]}
df = pd.DataFrame.from_dict(my_dict, orient='index')
df.columns = ['one', 'two', 'three']

应该能够工作。


13

从版本0.23.0开始, 您可以在from_dict中指定一个columns参数:

my_dict = {'key1': [1, 2, 3], 'key2': [4, 5, 6], 'key3': [7, 8, 9]}
df = pd.DataFrame.from_dict(my_dict, orient='index', columns=['one', 'two', 'three'])

3
my_dict = {'key1' : [1,2,3], 'key2' : [4,5,6], 'key3' :[7,8,9]}
df = pd.DataFrame.from_dict(my_dict, orient='columns')
df.columns = ['one', 'two', 'three']

我将index改为columns。这对我很有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接