根据其他列创建数据框列

时间:2014-04-14 19:20:35

标签: python pandas dataframe

我有一个columns[id, type, income]的数据框,并希望根据收入添加一个名为incomebracket的附加列。有没有人有任何建议?

理想情况下,我会根据一系列间隔创建新的incomebracket列。即:

incomebracket = 1 if 100000 < income < 150000

到目前为止,我知道如何创建一个空白数据框列:df['incomebracket'],但我无法弄清楚其余部分。

有什么建议吗?

干杯

2 个答案:

答案 0 :(得分:0)

试试这个

df['incomebracket'] = 0 #default
df.incomebracket[(df.income >= 100000) & (df.income < 150000)] = 1

我首选的方法是使用numpy where

import numpy as np
df['incomebracket'] = np.where((df.income >= 100000) & (df.income < 150000), 1, 0)

答案 1 :(得分:0)

您可能对pd.cut感兴趣:

>>> df = pd.DataFrame({"income": np.random.uniform(0, 10**6, 10)})
>>> df["incomebracket"] = pd.cut(df.income, np.linspace(0, 10**6, 11))
>>> df
          income     incomebracket
0  474229.041695  (400000, 500000]
1  128577.241314  (100000, 200000]
2  254345.417166  (200000, 300000]
3  622104.725105  (600000, 700000]
4   93779.964789       (0, 100000]
5  865556.464985  (800000, 900000]
6  304711.799685  (300000, 400000]
7  601910.710932  (600000, 700000]
8  229606.880350  (200000, 300000]
9   49889.911661       (0, 100000]

[10 rows x 2 columns]

另见pd.qcut