gpt4 book ai didi

python - 在方法链接期间引用 DataFrame 的当前状态

转载 作者:行者123 更新时间:2023-12-05 07:59:58 28 4
gpt4 key购买 nike

我经常发现我可以将流程中的一个步骤映射到 Series 或 DataFrame 上的一系列矢量化方法。

例子

step1 = df.a_column.reindex(target.index)
result = step1.where(step1 > 0, 1)

但我真正想要的是在一条线上

result = df.a_column.reindex(target.index).where( ? >0, 1) 

如何引用第一个示例中的 step1?

我正在使用 pandas 12。我认为在 13 中,查询方法将假定当前对象的上下文,但我不知道它是否返回与源相同的形状。

最佳答案

这个视频 ( effective pandas ) 改变了我的 Pandas 世界。您的解决方案是在 49:10 分钟。

您可以通过在全局命名空间中定义新变量名称的辅助函数管道来捕获数据帧的状态中间链:

import pandas as pd
import seaborn as sns


def catchstate(df, var_name: str) -> 'pd.DataFrame':
"""
Helper function that captures intermediate Dataframes mid-chain.
In the global namespace, make a new variable called var_name and set it to dataframe
"""
globals()[var_name] = df
return df


# LOAD TESTDATA
df = sns.load_dataset("fmri")

df = (df
.rename(columns={"timepoint": "TIMEPOINT"})
.pipe(catchstate, var_name="DF2")
.where(df["timepoint"] > 15, "foo")
.assign(timepoint_copy = DF2["TIMEPOINT"])
)

print(df.head(5))
  subject TIMEPOINT event    region signal  timepoint_copy
0 s13 18 stim parietal -0.018 18
1 foo foo foo foo foo 14
2 s12 18 stim parietal -0.081 18
3 s11 18 stim parietal -0.046 18
4 s10 18 stim parietal -0.038 18

关于python - 在方法链接期间引用 DataFrame 的当前状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19938734/

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