【问题标题】:How to add a column into Pandas with a condition如何在带有条件的 Pandas 中添加列
【发布时间】:2021-06-17 05:36:21
【问题描述】:

这是一个简单的 pandas DataFrame:

data={'Name': ['John', 'Dav', 'Ann', 'Mike', 'Dany'],
     'Number': ['2', '3', '2', '4', '2']}

df = pd.DataFrame(data, columns=['Name', 'Number'])
df

我想添加名为“color”的第三列,如果 Number = 2,则值为“red”,如果 Number = 3,则值为“Blue”

这个数据框只有 5 行。实际上它有一千行,所以我不能手动添加一个简单的列。

【问题讨论】:

    标签: python python-3.x pandas dataframe


    【解决方案1】:

    你可以使用.map:

    dct = {2: "Red", 3: "Blue"}
    
    df["color"] = df["Number"].astype(int).map(dct)  # remove .astype(int) if the values are already integer
    print(df)
    

    打印:

       Name Number color
    0  John      2   Red
    1   Dav      3  Blue
    2   Ann      2   Red
    3  Mike      4   NaN
    4  Dany      2   Red
    

    【讨论】:

    • 你也可以用字符串键控。
    • @HenryEcker 将其作为另一个答案发布,我会支持它(或np.where
    猜你喜欢
    • 2016-02-03
    • 2022-01-16
    • 2023-01-18
    • 1970-01-01
    • 2016-07-02
    • 2019-10-02
    • 2011-09-27
    • 2020-04-13
    • 2021-10-16
    相关资源
    最近更新 更多