如何在 Pandas 数据框中添加新列的值?

6
我希望在Pandas数据框中创建一个名为的新列,将第一个值插入该列,然后将另一个值添加到同一列中:
类似于:
import pandas

df = pandas.DataFrame()
df['New column'].append('a')
df['New column'].append('b')
df['New column'].append('c')

etc.

我该怎么做?


可能是 https://dev59.com/cWcs5IYBdhLWcg3w0HOz 的重复问题。 - r3zaxd1
3个回答

9

如果我理解正确,您想将一个值附加到pandas数据帧中的现有列。使用数据帧时需要保持类似矩阵的形状,因此每个列的行数相等,您可以添加一个具有默认值的列,然后更新该值。

for index, row in df.iterrows():
     df.at[index, 'new_column'] = new_value

我遇到了类似的问题。为什么这个不起作用:row['new_column']=new_value? - Kurt Peters

7
不要这样做,因为它很慢
  1. 逐行更新一个空白的数据框。我看到这种方法被过度使用。这是最慢的方法。它可能在一些Python结构中很常见(并且相对较快),但DataFrame在索引方面进行了相当多的检查,因此逐行更新速度总是非常慢的。更好的方法是创建新的数据结构并拼接。

最好创建数据列表并通过构造函数创建 DataFrame

vals = ['a','b','c']

df = pandas.DataFrame({'New column':vals})

0
如果需要向新创建的列中添加随机值,您也可以使用以下方法:
df['new_column']= np.random.randint(1, 9, len(df))

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