python - 在 Pandas 中操作子集数据帧的行值

标签 python pandas

我有一个像这样的数据框df1:

    ID1    ID2
0   foo    bar
1   fizz   buzz

还有一个像这样的df2:

    ID1    ID2    Count    Code   
0   abc    def      7        B
1   fizz   buzz     5        B
2   fizz1  buzz2    9        C
3   foo    bar      6        B
4   foo    bar      6        Z

我想做的是过滤第二个数据帧,其中 ID1ID2 匹配第一个数据帧中的一行,作为数据帧 sub_df,然后将以下代码 sub_df.loc[sub_df["Count"] >= 5, "Code"] = "A" 应用到 sub_df:

sub_df:

    ID1    ID2    Count    Code   
1   fizz   buzz     5        B
3   foo    bar      6        B
4   foo    bar      6        Z

最后,我想生成一个如下所示的数据框 df:

    ID1    ID2    Count    Code   
0   abc    def      7        B
1   fizz   buzz     5        A
2   fizz1  buzz2    9        C
3   foo    bar      6        A
4   foo    bar      6        A

我该怎么做?谢谢。

最佳答案

你可以 merge两个带有 indicator 的数据帧,并使用它来将 Code 设置为 A 或不是:

df = df2.merge(df1, how='left', on=['ID1','ID2'], indicator='ind')
df.loc[(df["Count"] >= 5) & (df['ind'] == 'both'), "Code"] = "A" 
df = df.drop('ind', axis=1)

print(df2)

     ID1    ID2  Count Code
0    abc    def      7    B
1   fizz   buzz      5    A
2  fizz1  buzz2      9    C
3    foo    bar      6    A
4    foo    bar      6    A

关于python - 在 Pandas 中操作子集数据帧的行值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57725030/

相关文章:

python - 将值附加到python中的两个关键defaultdict

centos7上请求的Python模块错误

python - 如何找到 Pandas 数据框列中一组值之间的相关性

python - 如何选择满足条件直到组的最后一个元素的 Pandas Dataframe?

pandas - 在 Pandas 数据透视表的列上应用聚合函数

python - 查找与另一列 Pandas 中的唯一值关联的列中的值的交集

python - PySide (Qt) 信号未到达我的插槽

python - 如何存储非均匀 numpy 数组列表?

python - 将今天的日期与sqlite数据库表中的日期字段进行比较

python - Pandas:如何打开某些文件