Pandas:如何识别数据帧列中的值并进行一些数学运算

2024-06-13 07:17:14 发布

您现在位置:Python中文网/ 问答频道 /正文

enter image description here

我想做一些操作,这样我就能做出这样的东西:

enter image description here

换句话说,如果Name中的值在“first_list”中,我想将“values”乘以2。如果他们想在第二个列表中乘以0.5。如果他们不在其中一个(为尼克和尼基),不要做任何事。在

这就是我所拥有的:

first_list = ['John', 'James', 'Julius', 'Alex']
second_list = ['Lilly', 'Alexis', 'Becly']
if df['Name'].isin(first_list).any():
    df['New Values'] = df['Values'] * 2
elif df['Name'].isin(second_list).any():
    df['New Values'] = df['Values'] * 0.5

但这不是我想要的乘法运算。相反,它给了我:enter image description here


Tags: namedf列表newanyjohnlistfirst
1条回答
网友
1楼 · 发布于 2024-06-13 07:17:14

让我们使用np.whereisin

df['New Value'] = (np.where(df.Name.isin(first_list),
                            df.Values*2,
                            np.where(df.Name.isin(second_list),
                                     df.Values*.5,
                                     df.Values)))

设置:

^{pr2}$

输出:

     Name  Values  New Value
0    John      50      100.0
1    Lily     100       50.0
2  Alexis      30       15.0
3   Becky      60       30.0
4   James      40       80.0
5  Julian      20       20.0
6    Alex      80      160.0
7    Nick      25       25.0
8   Nicky      46       46.0

相关问题 更多 >