gpt4 book ai didi

python - Pandas 合并数据框列

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

我的输入数据框是:

df1

Grp A B C
Men 10 15 14
Women 4 6 5
Baby 3 5 15

df2

Grp Upper_A Lower_A Upper_B Lower_B Upper_C Lower_C
Men 10 1 9 2 15 2
Women 6 4 10 4 10 3
Baby 5 3 15 7 6 3

期望的输出是;

Grp      Features    Values   Upper_values  Lower_values    Evaluation
Men A 10 10 1 True
Men B 15 9 2 False
Men C 14 15 2 True
Women A 4 6 4 True
Women B 6 10 4 True
Women C 5 10 6 True
Baby A 3 5 3 True
Baby B 5 15 7 False
Baby C 15 6 3 False

你能帮我解决这个问题吗? PS:评价列根据是否介于上限值和下限值之间来分配。

最佳答案

解决方案是通过按列拆分并按 DataFrame.stack reshape 来创建 MultiIndex :

df2.columns = df2.columns.str.split('_', expand=True)

df2 = df2.stack().rename_axis(('Grp','Features'))

然后以相同方式处理df1并通过以下方式创建一列DataFrame Series.to_frameDataFrame.join第二个df2,最后一次使用Series.between对于新列:

df1 = df1.rename_axis('Features', axis=1).stack().to_frame('Values')

df = df1.join(df2).reset_index()
df['Evaluation'] = df['Values'].between(df['Lower'], df['Upper'])
print (df)
Grp Features Values Lower Upper Evaluation
0 Men A 10 1 10 True
1 Men B 15 2 9 False
2 Men C 14 2 15 True
3 Women A 4 4 6 True
4 Women B 6 4 10 True
5 Women C 5 3 10 True
6 Baby A 3 3 5 True
7 Baby B 5 7 15 False
8 Baby C 15 3 6 False

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

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