gpt4 book ai didi

python - 如何通过另一个数据框中的键过滤数据框中的列

转载 作者:行者123 更新时间:2023-12-04 10:48:05 25 4
gpt4 key购买 nike

我的第一个数据框是

obj1 obj2 obj3
01 02 03
02 03 04

另一个数据框是:
col1 col2 col3
obj1 M N
obj2 M T
obj3 M N


我只想要第一个数据框中标有的列
{'col2':M, 'col3':N}

想要的结果是
obj1 obj3
01 03
02 04

我似乎无法以体面的方式实现这一目标。

最佳答案

一种想法是将字典转换为一行 DataFrame merge , 因为没有参数 on它通过所有列名称的交集进行合并(在助手 DataFrame 中通过字典的键):

d = {'col2':'M', 'col3':'N'}

vals = pd.DataFrame([d]).merge(df2)['col1']

或使用 DataFrame.query 与字典理解:
vals = df2.query(' & '.join(['{}=={}'.format(i,repr(j)) 
for i, j in d.items()]))['col1']

然后按 Index.isin 过滤和 DataFrame.loc , :表示所有行:
df = df1.loc[:, df1.columns.isin(vals)]
print (df)
obj1 obj3
0 01 03
1 02 04

关于python - 如何通过另一个数据框中的键过滤数据框中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59610715/

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