gpt4 book ai didi

python - Pandas - 如果它们包含相同的值,如何匹配行

转载 作者:行者123 更新时间:2023-11-28 22:17:18 26 4
gpt4 key购买 nike

我有一个包含 4 列的数据框:“age_1”、“name_1”、“age_2”和“name_2”。

df = pd.DataFrame(index=[0, 4, 6, 9],
data={'age_1': [18, np.nan, 12, np.nan],
'name_1': ['Fred', np.nan, 'Harry', np.nan],
'age_2': [np.nan, 34, np.nan, 45],
'name_2': [np.nan, 'Jim', np.nan, 'Fred']})

输出

    age_1   name_1  age_2   name_2
0 18.0 Fred NaN NaN
4 NaN NaN 34.0 Jim
6 12.0 Harry NaN NaN
9 NaN NaN 45.0 Fred

所有名称出现两次(一次在 name_1 中,一次在 name_2 中)我想将 name_1 和 name_2 具有相同项目的行放在一起。例如,从上面的代码片段中,我希望它把第一行和最后一行像这样在一起:

    age_1   name_1  age_2   name_2
0 18.0 Fred 45.0 Fred

任何帮助都会很棒

最佳答案

您可以将数据框分成两部分,然后使用合并将它们连接起来。由于连接列 name_1name_2 有空值,您必须先删除空值。

l1 = ['age_1', 'name_1']
l2 = ['age_2', 'name_2']

df[l1].dropna().merge(df[l2].dropna(), left_on='name_1', right_on='name_2')

#outputs:
age_1 name_1 age_2 name_2
0 18.0 Fred 45.0 Fred

关于python - Pandas - 如果它们包含相同的值,如何匹配行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51500621/

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