赵小甲
赵小甲

Reputation: 65

How to append a longer list to dataframe

I wanna append a longer list to dataframe .But get an error ValueError: Length of values (4) does not match length of index (3)

import pandas as pd

df = pd.DataFrame({'Data': ['1', '2', '3']})

df['Data2'] =['1', '2', '3', '4']

print(df)

How can I fix it .

Upvotes: 2

Views: 507

Answers (2)

Ch3steR
Ch3steR

Reputation: 20669

You can try using pd.concat here but convert your list to a Series then use pd.concat

l = ['1', '2', '3', '4']
pd.concat([df, pd.Series(l, name='Data2')], axis=1)

  Data Data2
0    1     1
1    2     2
2    3     3
3  NaN     4

Upvotes: 0

jezrael
jezrael

Reputation: 862611

Use DataFrame.reindex for add new rows by maximal length by new list or original DataFrame, if length of list should be changed, sometimes same length or sometimes length is shorter:

df = pd.DataFrame({'Data': ['1', '2', '3']})

L = ['1', '2', '3', '4']

df = df.reindex(range(max(len(df), len(L))))
df['Data2'] = L
print (df)
  Data Data2
0    1     1
1    2     2
2    3     3
3  NaN     4

If always is length of list longer:

df = df.reindex(range(len(L)))
df['Data2'] = L

Upvotes: 3

Related Questions