python - 如何在 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]
解决方案
我仍然更喜欢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)]
推荐阅读
- java - Native Android:应用程序崩溃时调用通知
- c# - 在没有范围的情况下定义 Ninject 的绑定以保持代码 DRY
- amazon-web-services - 如何在 .NET lambda 函数中读取 aws sam 参数
- c# - 预增量运算符如何处理像 += ++a 这样的变量赋值?
- php - 致命错误:常量表达式在第 5 行的 /PATH/initClass.php 中包含无效操作
- python - 这个循环不起作用,代码需要改进你有什么建议吗?
- php - Laravel 6 - 一个具有多种功能的控制器
- scala - 如何从另一个服务器scala调用rest API
- c# - 使用 AlarmManager,Intent.PutExtra 似乎只在项目重建时工作
- javascript - 从 javascrit 到 python-django 的实时音频流