作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含多个标题行(多个 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/
我是一名优秀的程序员,十分优秀!