python - 使用循环或列表理解创建多个 pandas 数据框

标签 python loops pandas dataframe

我有一个 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/

相关文章:

python - 从排序的单词列表中高效打印匹配的 semordnilaps 对

java - 在 Java 8 中进行 ruby​​ 注入(inject)的优雅方式

python - Python 2.5 中的抽象类?

python - standard_init_linux.go :178: exec user process caused "exec format error"

php - 在PHP和MySql中创建一个累积比较表

python - 将 describe 函数应用于 pandas groupby 时如何忽略行的最大值和最小值

python - 如何根据Python中数据帧中其他列的值/计数来计算数据帧中列的值?

python - 如何将 Pandas 模块与 pyinstaller 一起使用 "compile"脚本?

python - 在项目列表中,保留第一个项目并删除与模式匹配的其余项目(使用 python)

javascript - 在客户端reactJS下载之前将多个文件放到一个zip文件夹中