首页 > 解决方案 > 如何将更长的列表附加到数据框

问题描述

我想将更长的列表附加到数据框。但是得到一个错误 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)

我该如何解决它。

标签: pythonpandas

解决方案


用于DataFrame.reindex通过新列表或原始 DataFrame 按最大长度添加新行,如果列表的长度应更改,有时长度相同或有时长度更短:

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

如果总是列表长度更长:

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

推荐阅读