大熊猫的Python DataFrames:如何分割dataframes
问题描述:
我有一个DF大熊猫的Python DataFrames:如何分割dataframes
df = pd.DataFrame(np.random.randn(11,3))
0 1 2
0 0.102645 -1.530977 0.408735
1 1.081442 0.615082 -1.457931
2 1.852951 0.360998 0.178162
3 0.726028 2.072609 -1.167996
4 -0.454453 1.310887 -0.969910
5 -0.098552 -0.718283 0.372660
6 0.334170 -0.347934 -0.626079
7 -1.034541 -0.496949 -0.287830
8 1.870277 0.508380 -2.466063
9 1.464942 -0.020060 -0.684136
10 -1.057930 0.295145 0.161727
我怎样才能在小节的给定数量的拆分此,可以说2现在。
像这样
0 1 2
0 0.102645 -1.530977 0.408735
1 1.081442 0.615082 -1.457931
2 1.852951 0.360998 0.178162
3 0.726028 2.072609 -1.167996
4 -0.454453 1.310887 -0.969910
0 1 2
5 -0.098552 -0.718283 0.372660
6 0.334170 -0.347934 -0.626079
7 -1.034541 -0.496949 -0.287830
8 1.870277 0.508380 -2.466063
9 1.464942 -0.020060 -0.684136
10 -1.057930 0.295145 0.161727
理想我想用np.array_split(DF,2),但它会引发错误作为其不是阵列。
有没有内置函数来做到这一点?我并不特别想使用df.loc [a:b],因为根据所需的子数据框的数量很难计算开始和结束。
答
请尝试以下操作。它应该返回一个由n个子数据框组成的数组,如果连接在一起会返回有问题的原始数据帧。
import math
def split(df, n):
size = math.ceil(len(df)/n)
return [ df[i:i + size] for i in range(0, len(df), size) ]
感谢这一点,但唯一的问题是余下的问题。拆分(df,2)为我的df返回3个子dfs。有没有办法使用np.arry_split()一些如何自动处理剩余。 – 2014-11-06 18:35:45
如果你使用的是Python 2.x,尝试改变这一行来计算大小size = math.ceil(float(len(df))/ n)' – mtadd 2014-11-06 18:38:50
我不知道你做了什么,但它的工作很好,我会运行一些测试,并让你知道它,但谢谢! – 2014-11-06 18:41:38