python-3.x - 如何根据另一列的值对一列进行pandas-groupby并获得每组的特定结果?
问题描述
我有一个包含两列的 DataFrame:一列是日期,另一列包含值 True 或 False。
假设此代码获取数据框:
d_range=pd.date_range(start='01-01-2018', end='01-06-2018', freq='0.2D', )
d_range=d_range.date
my_list=[]
for i in range(0,d_range.size):
if 0<i<18:
my_list.append(False)
else:
my_list.append(True)
df=pd.DataFrame({'date':d_range, 'met criteria':my_list})
df.set_index(['date'])
这将为我们提供这个 DataFrame:
print(df)
date criteria
0 2018-01-01 True
1 2018-01-01 False
2 2018-01-01 False
3 2018-01-01 False
4 2018-01-01 False
5 2018-01-02 False
6 2018-01-02 False
7 2018-01-02 False
8 2018-01-02 False
9 2018-01-02 False
10 2018-01-03 False
11 2018-01-03 False
12 2018-01-03 False
13 2018-01-03 False
14 2018-01-03 False
15 2018-01-04 False
16 2018-01-04 False
17 2018-01-04 False
18 2018-01-04 True
19 2018-01-04 True
20 2018-01-05 True
21 2018-01-05 True
22 2018-01-05 True
23 2018-01-05 True
24 2018-01-05 True
25 2018-01-06 True
我需要一个按“日期”分组的结果,如果至少有一个 True 值,那么结果将为 True,否则为 False。结果应如下所示:
date criteria
2018-01-01 True
2018-01-02 False
2018-01-03 False
2018-01-04 True
2018-01-05 True
2018-01-06 True
你能建议一些可以做到这一点的代码吗?
解决方案
这是一种方法:
In [1]:
import pandas as pd
d_range=pd.date_range(start='01-01-2018', end='01-06-2018', freq='0.2D', )
d_range=d_range.date
my_list=[]
for i in range(0,d_range.size):
if 0<i<18:
my_list.append(False)
else:
my_list.append(True)
df=pd.DataFrame({'date':d_range, 'met criteria':my_list})
def True_or_Not(x):
return x>0
df.groupby('date').sum().apply(True_or_Not)
df
Out [1]:
met criteria
date
2018-01-01 True
2018-01-02 False
2018-01-03 False
2018-01-04 True
2018-01-05 True
2018-01-06 True
推荐阅读
- javascript - 使用 react-toastify 时出错,toast 不查看
- python - Django使用opencv剪切并只将人脸放入图片字段中
- c# - 如何在 Visual Studio 中自动查找和添加类型的命名空间 using 子句?
- python - 将索引转换为时间序列索引 Pandas 的问题
- c++ - 通过 CPP+COM 应用程序处理大型 PST 时获取 MAPI_E_NOT_ENOUGH_MEMORY, 0x8007000E
- css - Avada WordPress 主题:下拉子菜单上的圆角
- php - 无法加载联系页面
- swift - SwiftUI 中的静态项目列表
- python - 为什么在使用 TensorFlow Lite 转换 YOLOv4 时,推理时间/大小没有改善?有没有可能的改进?
- github - 如何修复在 Slack 中克隆 git url 的未知错误