考虑数据帧{
"name": "mycustomslot",
"values": [
{
"name": {
"value": "eating",
"synonyms": [
"eat something",
"are you eating",
"eat"
]
}
},
{
"name": {
"value": "drinking",
"synonyms": [
"drink something",
"drinking",
"drink",
]
}
}
{
"name": {
"value": AMAZON.NUMBER,
"synonyms": []
}
}
}
]
},
df
date time isopen isclose openlate closeearly
20200201 0920 Y N Y N
20200201 1645 N Y N Y
20200202 0900 Y N N N
20200202 1650 N Y N Y
20200203 0910 Y N Y N
20200203 1700 N Y N N
和openlate
是根据时间和closeearly
列计算的。
我想按日期展平,有类似的东西
isopen/isclose
基本上是通过 date openlate closeearly
20200201 Y Y
20200202 N Y
20200203 Y N
,分区或窗口函数折叠多行,然后选择要在各行之间保留哪个值的逻辑。在很多情况下,我确实有这种情况。
groupby
答案 0 :(得分:0)
您可以使用DataFrameGroupBy.agg
方法。它允许您应用自定义功能来汇总每个组。实际上,它甚至允许您传递将每一列映射到不同功能的字典。
在您的情况下:
df.groupby('date').agg(any)
答案 1 :(得分:0)
使用命名聚合.agg
df1 = df.groupby('date').agg(
openlate=('openlate','first'),
closeearly=('closeearly','last'))
print(df1)
openlate closeearly
date
20200201 Y Y
20200202 N Y
20200203 Y N