使用value_counts将新列添加到数据框

时间:2019-11-17 20:36:30

标签: python pandas

我有两个数据集:

-人口:按字母顺序显示美国各州的人口。

-数据:具有200,000多行

population.head()

    state       population
0   Alabama     4887871
1   Alaska      737438
2   Arizona     7171646
3   Arkansas    3013825
4   California  39557045

我正在尝试从其他数据集中添加一个名为“事件”的新列。

我尝试过:人口['事件'] = data.state.value_counts()。sort_index()

但是我得到以下结果:

    state       population  incidents
0   Alabama     4887871      NaN
1   Alaska      737438       NaN
2   Arizona     7171646      NaN
3   Arkansas    3013825      NaN
4   California  39557045     NaN

该如何解决?

编辑: data.state.value_counts()。sort_index()

Alabama                  5373
Alaska                   1292
Arizona                  2268
Arkansas                 2753
California              15975
Colorado                 3069
Connecticut              2984
Delaware                 1643
District of Columbia     3091
Florida                 14610
Georgia                  8717
````````````````````````

2 个答案:

答案 0 :(得分:0)

如果要从一个数据集中向另一个数据集中添加特定的列,您可以这样做 population['incidents'] = data[['columntoappend']] 您的RHS(右侧)必须是一栏,在您的情况下则不是。 https://www.google.com/amp/s/www.geeksforgeeks.org/adding-new-column-to-existing-dataframe-in-pandas/amp/

答案 1 :(得分:0)

如果您的索引长度一致,则执行此操作的方法如下:

population['incidents'] = [x for x in data.state.value_counts().sort_index()]

我真的无法解释为什么您的方法会导致NaN对象。无论如何,这都是不正确的,因为您正在将整个系列分配给总体数据集中的每一行。借助列表理解功能,您可以为每一行分配一个值。