[英]Pandas Merge multiple rows into a single row based on columns
通過索引搜索dataframe后如何添加列值,列數形成二元化。 Dataframe 通過列表搜索 go。
listgroup = [some list]
df[df.index.isin([200100000004,200100000005])]
.
column1 column2 column3 columnN
200100000001 1 20 1 3
200100000009 1 55 1 3
200100000004 1 30 2 12
200100000005 1 50 3 4
結果
column1 column2 column3 columnN
200100000004,200100000005 2 80 5 16
isin()
過濾 dfgroupby()
的列foo和可用於構造連接索引的列IDLagg()
指令df = pd.DataFrame({"ID":[200100000001,200100000009,200100000004,200100000005],"column1":[1,1,1,1],"column2":[20,55,30,50],"column3":[1,1,2,3],"columnN":[3,3,12,4]})
df = df.set_index("ID")
listgroup = [200100000004,200100000005]
df[df.index.isin(listgroup)].assign(foo=1,IDL=lambda x: x.index).groupby("foo")\
.agg({**{"IDL":lambda x: ",".join([str(i) for i in list(x)])},
**{col:"sum" for col in df.columns}
}).reset_index().drop(columns=["foo"]).set_index("IDL")
output
column1 column2 column3 columnN
IDL
200100000004,200100000005 2 80 5 16
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.