我进行了搜索,但找不到像我这样的问题。所以,如果有某种原因,我找不到,请告诉我。所以我可以删除这篇文章。
我遇到了一个问题,要用一个值将熊猫数据帧拆分为不同的数据帧(df)。
我在文本文件中有一个数据集,我将它们存储为pandas dataframe
,它只有一列。数据集中有不止一组信息,并且某个值定义了该组的结尾,您可以在下面看到一个示例:
示例输入
In [8]: df
Out[8]:
var1
0 a
1 b
2 c
3 d
4 endValue
5 h
6 f
7 b
8 w
9 endValue
所以我想将此df拆分为不同的数据帧。我找不到实现此目的的方法,但是我敢肯定必须有一种简单的方法。我在示例输出中显示的格式可能是错误的格式。因此,如果您有更好的主意,我希望看到。谢谢您的帮助。
我想要的示例输出
var1
{[0 a
1 b
2 c
3 d
4 endValue]},
{[0 h
1 f
2 b
3 w
4 endValue]}
答案 0 :(得分:3)
一个具有唯一索引值的想法是将不匹配的值替换为NaN,然后回填它们,最后循环groupby
对象以获取DataFrame
的列表:
g = df.index.to_series().where(df['var1'].eq('endValue')).bfill()
dfs = [a for i, a in df.groupby(g, sort=False)]
print (dfs)
[ var1
0 a
1 b
2 c
3 d
4 endValue, var1
5 h
6 f
7 b
8 w
9 endValue]
答案 1 :(得分:3)