python - 按月查找每个组中最早的记录
问题描述
我有一个像这样的熊猫数据框:
Month Name Revenue EARLY_MIN
Jan A 100 ?
Jan A 50 ?
Feb A 30 ?
对于每个“名称”,我想选择最早的记录(Jan)。如果它返回多于一行,我将选择带有 min 的记录。收入。所以在这种情况下是50。我将为这条记录创建一个 EARLY_MIN=1 列。所以在这个例子中,第二行EARLY_MIN=1,其他行EARLY_MIN=0。
我怎样才能在熊猫中做到这一点?步数?
解决方案
通过使用与 Vaishali 相同的设置
#df['Month'] = pd.to_datetime(df.Month, format='%b').dt.month
df['EARLY_MIN']=(~df.sort_values(['Month','Revenue']).duplicated('Name',keep='first')).astype(int)
df
Out[1006]:
Month Name Revenue EARLY_MIN
0 1 A 100 0
1 1 A 50 1
2 2 A 30 0
推荐阅读
- c - 基于结束条件的 C 格式输出
- python - 如何通过库之类的东西来设置我的 tkinter python 代码的样式
- python - 为什么我的 form.validate_on_submit() 没有将数据添加到我的数据库中?
- javascript - 未捕获的错误:对象作为 React 子项无效(找到:带有键 {todo} 的对象)。如果您打算渲染一组孩子,请使用数组
- postgresql - 为什么“SELECT MOD(_number, 10) AS _mod;” 产生错误“查询没有结果数据的目的地”?
- python - 如何删除包含非浮点/整数变量的数据框中的行
- r - 仅在特定年份使用 r 中的叶子时间库显示点
- r - 是否有一个很好的 R 函数来分离两个数据帧之间的唯一列值,保持行?
- java - 读取十进制数并打印其等效的二进制数
- c - 设置共享库的堆栈大小