gpt4 book ai didi

python - 如何将数据帧的行与二维数组列表进行比较 - Python

转载 作者:行者123 更新时间:2023-12-01 07:46:08 26 4
gpt4 key购买 nike

我的目标是将 DataFrame 行与 2D 数组列表中的每个项目进行比较。

这是我的列表 = mylist

1       2000
2 2000a
3 2000b

这是我的 Dataframe = df

RPN      Source       city  
1 netflix baltimore
1 netflix baltimore
2 hulu orlando
4 hulu houston

如上所述,我想从列表中创建一个新列,将 DataFrame 中的每个 RPN 与 mylist 的第一个位置进行比较。如果 RPN 在 mylist 中,则获取与其关联的数组的第二个位置,并将其附加到要连接到数据帧的 a 列表中。如果没有找到就使用 RPN。

期望输出

RPN      Source          city           npi
1 netflix baltimore 2000
1 netflix baltimore 2000
2 hulu orlando 2000a
4 hulu houston 4

下面是我的代码,它可以工作,但是我只获取每条记录的 RPN,而不是 mylist 中与该 RPN 关联的 NPI

#Seperates Portico from Facets, FEP, Nasco, ETC
portico = df[df['SOURCE'] == 'PORTICO']
comparelist = []

#creates a list of RPN and NPI
mylist = portico[['RPN','NPI']].values.tolist()
for index,x in df.iterrows():
RPN = x['RPN']
for a in mylist:
if RPN in a:
comparelist.append(a)
else:
comparelist.append(RPN)
break
df = df.drop(columns = ['NPI'])
df['NPI'] = comparelist

电流输出

RPN      Source          city           npi
1 netflix baltimore 1
1 netflix baltimore 1
2 hulu orlando 2
4 hulu houston 4

最佳答案

如果您不介意为 mylist 创建一个数据框,一种方法可能是使用 merge:

mylist_df = pd.DataFrame(mylist, columns=['RPN', 'npi']) # creating other df 
df = df.merge(mylist_df, how='left', on='RPN')
df['npi'].fillna(df['RPN'], inplace=True) # fill na values with RPN of same dataframe

关于python - 如何将数据帧的行与二维数组列表进行比较 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56450251/

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