gpt4 book ai didi

python - 基于关键字遍历 pandas 数据框

转载 作者:太空宇宙 更新时间:2023-11-04 05:11:00 26 4
gpt4 key购买 nike

我有一个 pandas 数据框,看起来像

In [97]: df
Out[97]:
A1 A1_step A1_step_n LB7 dF
0 40000 500 2 4 2
1 60000 300 3 6 7

我想使用具有 stepstep_n 关键字的列以指定的步长“逐步”(迭代)数据帧的行。因此,在上面的示例数据框中,我想遍历 A1 列的 40000 行两次,步长为 500,步长为 300,步长为 60000。最后,我想数据框看起来像

In [98]: df2
Out[98]:
A1 LB7 dF
0 40000 4 2
1 40500 4 2
2 60000 6 7
3 60300 6 7
4 60600 6 7

其中 LB7dF 的值被执行,不再需要“step”列。

我尝试遍历列试图找出哪些列被迭代并循环遍历这些循环以添加到数据框,但它很快变得非常困惑,我希望这里有人可以引导我更好的路径。

最佳答案

您可以像这样遍历行并手动构建数据框:

dfs = []
col_step = df.columns.str.extract('(.*\_step$)', expand=False).dropna()[0]
col_step_n = df.columns.str.extract('(.*\_step\_n$)', expand=False).dropna()[0]

for i, row in df.iterrows():
start = row['A1']
steps = row[col_step_n]
size = row[col_step]
stop = start + size * (steps)
df_cur = pd.DataFrame({'A1': np.arange(start, stop, size), 'LB7':row['LB7'], 'dF':row['dF']})
dfs.append(df_cur)

df_final = pd.concat(dfs, ignore_index=True)

输出

print(df_final)
A1 LB7 dF
0 40000 4 2
1 40500 4 2
2 60000 6 7
3 60300 6 7
4 60600 6 7

关于python - 基于关键字遍历 pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42989645/

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