简体   繁体   English

从列表中创建 Pandas 数据框

[英]Pandas dataframe creation from a list

Im getting the following error Shape of passed values is (1, 5), indices imply (5, 5) .我收到以下错误Shape of passed values is (1, 5), indices imply (5, 5) From what I can tell this suggests that the data set doesnt match the column count, and of course it obviously is correct.据我所知,这表明数据集与列数不匹配,当然这显然是正确的。 Initially I thought it could be due to using a list, but I get the same issue if passing in a numpy array.最初我认为这可能是由于使用了列表,但如果传入一个 numpy 数组,我会遇到同样的问题。

Can anyone point out my stupidity, as im clearly doing something incorrectly.谁能指出我的愚蠢,因为我显然做错了什么。

data = ['data1', 'data2', 'data3', 'data4', 'data5']
report_name = 'test.csv'
try:
    df = pd.DataFrame(data, columns=['column1', 'column2', 'column3', 'column4', 'column5'], index=None)
    df.sort_values('column1', ascending=True, inplace=True)
    df.to_csv(report_name, index=False)
except Exception, e:
    print e

you have to pass a 2d dimensional array to pd.DataFrame for the data if you force the shape by passing columns如果通过传递columns强制形状,则必须将二维数组传递给pd.DataFrame以获取数据

data = [['data1', 'data2', 'data3', 'data4', 'data5']]
df = pd.DataFrame(data, columns=['column1', 'column2', 'column3', 'column4', 'column5'])

You've missed the list brackets around data您错过了data周围的列表括号

df = pd.DataFrame(data = [data], columns=['column1', 'column2', 'column3', 'column4', 'column5'], index=None)

Things to note: pd.DataFrame() expects a list of tuples , this means:注意事项: pd.DataFrame()需要一个tuples列表,这意味着:

data = ['data1', 'data2', 'data3', 'data4', 'data5']
df = pd.DataFrame(data)
# This implies every element in the list `data` is a tuple 
print(df)

Out[]:        0
         0  data1
         1  data2
         2  data3
         3  data4
         4  data5

As opposed to :与:

data = ['data1', 'data2', 'data3', 'data4', 'data5']
df = pd.DataFrame([data])
# This implies that the list `data` is the first tuple
print(df)
Out[]:        0      1      2      3      4
         0  data1  data2  data3  data4  data5

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM