首页 > 解决方案 > 如何在 Pandas uisng for 循环中过滤 DataFrame 中的行?

问题描述

我有一个包含大量列(20+)的 csv 文件。我想过滤时间列(“分钟”),以便它创建 60 个单独的数据帧,其中包含每分钟的所有数据。我可以使用下面的这种方法来实现它,但是可以使用 for 循环而不是重复自己 60 次来实现它?

import pandas as pd

df = pd.read_csv("data.csv")

mins_0 = df[df['mins']==0]
mins_1 = df[df['mins']==1]
mins_2 = df[df['mins']==2]
mins_3 = df[df['mins']==3]
....
mins_59 = df[df['mins']==59]

标签: pythonpandasdataframeloopsfilter

解决方案


我仍然更喜欢pd.group_by评论中的 ,但也可以通过使用np.unique()来查找表中的所有唯一值并在存储桶中选择它们。

import numpy as np
import pandas as pd

df = pd.read_csv("data.csv")

df_list = [df[df['mins']==x] for x in in.unique(df['mins'].values)]

推荐阅读