我基本上想要一个Dataframe,它有一个特定日期的最大值和最小值交替的顺序。但是我遇到了两个问题:
- 我不能使用agg与2个函数后连接
- 我还没有找到一种优雅的方式来获得这些"两个"。
非常感谢您的帮助编辑:对不起,我没有说清楚,我会在这里试试:
我有一个包含日期和值的csv文件。
我想要一个csvfile在以下方式:
date1,马克斯(date1)
date1, min (date1)
date2,马克斯(date2)
date2, min(date1)等
我希望这能更好地解释它
如果没有看到一些数据,很难确切地知道设置是什么,但是如果您将数据放入名为df
的pandas.DataFrame
中,其中列为"日期", "min", "max"然后可以使用pandas.DataFrame.melt
:
df.melt(id_vars="date").sort_values(["date", "variable"])
这将给你列
- "date"-原始日期
- "variable"-任意"min"或";max"字符串
- "value"-日期的最小值或最大值
使用DataFrame.stack
与Series.reset_index
:
df1 = (df.groupby('col1')['col2']
.agg(['max','min'])
.stack()
.reset_index(level=1, drop=True)
.reset_index(name='new'))