我有一个 Python 数据框,我想按行分割,但分成 32 个不同的切片(想象一下一个大数据集按行切成 32 个较小的数据集)。我可以通过这种方式手动划分数据框:
df_a = df[df['Type']=='BROKEN PELVIS']
df_b = df[df['Type']=='ABDOMINAL STRAIN']
我假设有人可能想分享一个更加 Pythonic 的表达式。我正在寻找类似的东西:
for i in new1:
df_%s= df[df['#RIC']=='%s'] , %i
希望这是有道理的。
最佳答案
在这种情况下,我认为将 DataFrame 存储在 python 字典中更符合 Python 风格:
injuries = {injury: df[df['Type'] == injury] for injury in df['Type'].unique()}
injuries['BROKEN PELVIS'] # is the same as df_a above
大多数时候,您不需要创建新的 DataFrame,但可以使用 groupby(这取决于您接下来要做什么),请参阅 http://pandas.pydata.org/pandas-docs/stable/groupby.html :
g = df.groupby('Type')
更新:实际上有一个方法get_group
来访问这些:
In [21]: df = pd.DataFrame([['A', 2], ['A', 4], ['B', 6]])
In [22]: g = df.groupby(0)
In [23]: g.get_group('A')
Out[23]:
0 1
0 A 2
1 A 4
注意:大多数时候您不需要这样做,应用、聚合和转换就是您的 friend !
关于python - 使用循环或列表理解创建多个 pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21949076/