要变成啥样?
你应该是想把同组的cycle都放在一行把,下面写了个demo,你看看应该是你想要的结果
源数据:
import pandas as pd
if __name__ == '__main__':
df = pd.DataFrame([
{"id": 1, "cycle": 1, "conditions": 0},
{"id": 1, "cycle": 2, "conditions": 0},
{"id": 1, "cycle": 3, "conditions": 1},
{"id": 1, "cycle": 4, "conditions": 1},
{"id": 2, "cycle": 5, "conditions": 0},
{"id": 2, "cycle": 6, "conditions": 0}
])
dfList = []
for key, item in df.groupby(['id', 'conditions']):
# cycle不是字符串类型需要用apply转一下,如果是字符串类型的话,直接cycleList = item['cycle'].tolist()就行
cycleList = (item['cycle'].apply(lambda x: str(x))).tolist()
dfList.append({"id": key[0], "cycle": ",".join(cycleList), "conditions": key[1]})
result = pd.DataFrame(dfList)
print(result)