将数据框拆分为多个块,并将每个新块命名为一个数据框

时间:2018-11-15 07:03:05

标签: python loops dataframe split chunks

是否有很好的代码将数据帧分为多个块并自动将每个块命名为自己的数据帧?

例如,dfmaster有1000条记录。除以200并创建df1,df2 ...…df5 任何指导将不胜感激。

我看过其他板上的东西,没有关于可以自动创建新数据框的功能的指导。

2 个答案:

答案 0 :(得分:1)

使用numpy进行拆分:

请参见以下示例:

In [2095]: df
Out[2095]: 
     0     1     2    3     4    5     6     7     8     9     10
0  0.25  0.00  0.00  0.0  0.00  0.0  0.94  0.00  0.00  0.63  0.00
1  0.51  0.51   NaN  NaN   NaN  NaN   NaN   NaN   NaN   NaN   NaN
2  0.54  0.54  0.00  0.0  0.63  0.0  0.51  0.54  0.51  1.00  0.51
3  0.81  0.05  0.13  0.7  0.02  NaN   NaN   NaN   NaN   NaN   NaN

In [2096]: np.split(df, 2)
Out[2096]: 
[     0     1    2    3    4    5     6    7    8     9    10
 0  0.25  0.00  0.0  0.0  0.0  0.0  0.94  0.0  0.0  0.63  0.0
 1  0.51  0.51  NaN  NaN  NaN  NaN   NaN  NaN  NaN   NaN  NaN,
      0     1     2    3     4    5     6     7     8    9     10
 2  0.54  0.54  0.00  0.0  0.63  0.0  0.51  0.54  0.51  1.0  0.51
 3  0.81  0.05  0.13  0.7  0.02  NaN   NaN   NaN   NaN  NaN   NaN]

df被分成2个数据帧,每个数据帧具有2行。

您可以进行np.split(df, 500)

答案 1 :(得分:0)

我认为这些建议很有帮助:

通过列表解决: https://stackoverflow.com/a/49563326/10396469

使用numpy.split的解决方案: https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.split.html

先使用df = df.values从数据帧转换为numpy.array。