[英]Combining rows in pandas DataFrame by comparing multiple columns
如何從以下 DataFrame 中獲得預期結果
df
col_1 col_2 col_3 col_4
0 Non-Saved www.google.com POST 20,567
1 www.google.com POST
2 www.facebook.com GET
3 www.facebook.com OTHER
4 www.linkedin.com GET
5 Saved www.Quora.com POST 6,337
6 www.gmail.com POST
7 www.gmail.com GET
預期結果:
col_1 col_2 col_3 col_4
0 Non-Saved www.google.com POST 20,567
www.facebook.com GET
www.linkedin.com OTHER
1 Saved www.Quora.com POST 6,337
www.gmail.com GET
通過合並 col_1 和 col_3 中的空字符串,從 8 行到 2 行。 此外,將 col_2 和 col_3 中的不同值連接到一個單元格中。 任何人都可以幫助我使用用戶定義的函數來做到這一點嗎?
如果之前的解決方案有效,那么讓我們試試這個:
l = lambda x: ' , '.join(x.unique())
df = df.apply(lambda x: x.str.strip()).replace('',np.nan)
print(df.groupby(df.col_1.ffill())\
.agg({'col_2': l,'col_3': l, 'col_4':'first'})\
.reset_index())
輸出:
col_1 col_2 \
0 Non-Saved www.google.com , www.facebook.com , www.linked...
1 Saved www.Quora.com , www.gmail.com
col_3 col_4
0 POST , GET , OTHER 20,567
1 POST , GET 6,337
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.