gpt4 book ai didi

python - 将 Pandas 数据帧行拆分为搜索的列值到新的数据帧中

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

我有一个包含多个标题行(多个 csv 的组合)的数据框。有没有办法在不使用 .iloc 的情况下将数据帧拆分回单个数据帧? iloc 有效,但对我的工作流程来说会很耗时。

data = {'A':  [1,2,3,'A',4,5,6,'A',7,8,9],
'B': [9,8,7,'B',6,5,4,'B',3,2,1]}
df = pd.DataFrame(data, columns = ['A','B'])

## My current approach:
df1 = df.iloc[:3,]
df2 = df.iloc[4:7,]
df3 = df.iloc[8:,]
是否有更好的方法通过搜索列中的值来拆分数据框?即类似 df1,df2,df3 = df.split(df['A']=='A')

最佳答案

一个可以用eq检查标题行,然后在 cumsum 上进行分组:

header_rows = df.eq(df.columns).all(1)
dfs = {k:v for k,v in df[~header_rows].groupby(header_rows.cumsum())}
然后,例如 dfs[0]给出:
   A  B
0 1 9
1 2 8
2 3 7

关于python - 将 Pandas 数据帧行拆分为搜索的列值到新的数据帧中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64705075/

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