gpt4 book ai didi

python - 在中间步骤中引用链式 Pandas DF

转载 作者:太空宇宙 更新时间:2023-11-03 13:55:05 25 4
gpt4 key购买 nike

我正在尝试连接两个数据框并在一系列链式操作中删除重叠的列:

# people.head()
| name | id
|---------|----
0 | Jacob | 150
1 | Richard | 160
2 | John | 230
3 | Kate | 420
4 | Hugo | 1080

# age.head()
| age | id
|------|---
0 | 1024 | 15
1 | 128 | 16
2 | 56 | 23
3 | 32 | 42
4 | 24 | 108

combined = people.join(age, lsuffix='_TO_DROP_')
# combined.head()
| name | age | id | id_TO_DROP
|---------|------|-----|-----------
0 | Jacob | 1024 | 15 | 150
1 | Richard | 128 | 16 | 160
2 | John | 56 | 23 | 230
3 | Kate | 32 | 42 | 420
4 | Hugo | 24 | 108 | 1080

我现在可以删除由 join with

引起的任何重复列
combined.drop(columns=[col for col in combined.columns if col.endswith('_TO_DROP_'])

有没有办法通过链接 joindrop 操作来做到这一点?

people\
.join(age, lsuffix='_TO_DROP_')\
.drop(columns=[col for col in INTERMED_DF.columns if col.endswith('_TO_DROP_')])

具体来说,在链式 drop 调用中,我如何访问前一个(链式)join 调用的输出?

编辑

我的用例的另一个细节:重叠的列没有完全对齐。数据应该加入的列是数据帧索引,因此在我的示例中,仅合并(或加入)id 列不会完成我想要的。

最佳答案

这是另一种方式:

我正在使用 df.filter() 链接 join它采用正则表达式参数:

regex : string (regular expression) Keep labels from axis for which re.search(regex, label) == True

people.join(age, lsuffix='_TO_DROP_').filter(regex='^(?!.*TO_DROP_)')

       name     age    id
0 Jacob 1024 15
1 Richard 128 16
2 John 56 23
3 Kate 32 42
4 Hugo 24 108

关于python - 在中间步骤中引用链式 Pandas DF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57447308/

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