gpt4 book ai didi

python - 循环数据框列python

转载 作者:行者123 更新时间:2023-12-01 01:28:21 25 4
gpt4 key购买 nike

我有三个数据框:

df1、df2、df3。

每个数据帧都有一个变量(column1、column2、column3),并且都有一个 id。

我有一个主数据框,名为master_df,带有column_master。该列也有一个 ID。

我想编写一个循环,以便如果column_master具有来自df1、df2或df3的任何id,则创建一个名为“flag”的新列并对其进行标记:flag1(如果在df1中找到id),flag2(如果)在 df2 中找到,如果在 df3 中找到则标记 3。

到目前为止,我尝试过这样做,但我不知道如何完成代码:

def create_flag(df):

if df['column_master'] in df1['column1']:
return df['flag']==flag_1
elif df['column_master'] in ('column2'):
return df['flag']==flag_2
elif df['column_master'] in ('column3'):
return df['flag']==flag_3

return df

create_flag(master_df)

这会引发一个错误,指出它无法识别我的列名称。我究竟做错了什么?有没有更好的方法来写这个?

最佳答案

避免使用 Pandas 进行行式计算。您可以将 np.select 与多个条件/值一起使用。

dfs = {1: df1, 2: df2, 3: df3}

conds = [df['column_master'].isin(dfx[f'column{idx}']) for idx, dfx in dfs.items()]
choices = [f'flag{i}' for i in range(1, len(conds)+1)]

df['flag'] = np.select(conds, choices, default='flag-None')

关于python - 循环数据框列python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53140804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com