【发布时间】:2017-07-01 08:50:55
【问题描述】:
我有一个这样的项目列表:
A = ['1', 'd', 'p', 'bab', '']
我的目标是将此类列表转换为 1 行 5 列的数据框。如果我输入 pd.DataFrame(A) 我会得到 5 行和 1 列。我应该怎么做才能得到我想要的结果?
【问题讨论】:
标签: python list pandas dataframe row
我有一个这样的项目列表:
A = ['1', 'd', 'p', 'bab', '']
我的目标是将此类列表转换为 1 行 5 列的数据框。如果我输入 pd.DataFrame(A) 我会得到 5 行和 1 列。我应该怎么做才能得到我想要的结果?
【问题讨论】:
标签: python list pandas dataframe row
你可以使用:
df = pd.DataFrame([A])
print (df)
0 1 2 3 4
0 1 d p bab
如果所有值都是字符串:
df = pd.DataFrame(np.array(A).reshape(-1,len(A)))
print (df)
0 1 2 3 4
0 1 d p bab
谢谢AKS:
df = pd.DataFrame(A).T
print (df)
0 1 2 3 4
0 1 d p bab
【讨论】:
pd.DataFrame(A).T 呢?
pd.DataFrame([A]) 将列表转换为系列,而不是一行。
这对于您的特定问题来说有些外围,但我想我会发布它以防它帮助其他人。
要转换列表列表(并为每列命名),只需在实例化新数据框时将列表传递给 data 属性(连同所需的列名称),如下所示:
my_python_list = [['foo1', 'bar1'],
['foo2', 'bar2']]
new_df = pd.DataFrame(columns=['my_column_name_1', 'my_column_name_2'], data=my_python_list)
结果:
my_column_name_1 my_column_name_2
0 foo1 bar1
1 foo2 bar2
【讨论】: