我在合并重復的列時遇到問題(有點)。它似乎可以在較舊版本的Pandas / Python上運行(不確定問題出在哪里),但在最新版本上卻無法運行。我基本上在concat之后有一個混合值的數(shù)據(jù)框,其中包含重復的列名。這些值將是一個int,字符串或nan。對于每個重復的列名稱,所有非nan值都將相同,因此從理論上講max()應該可以解決問題。說我有數(shù)據(jù)框: col1 col1 col2 col2 col30 Foo nan nan Bar Baz1 nan nan Bar Bar nan2 0 nan 1 nan 1我的目標是 col1 col2 col30 Foo Bar Baz1 nan Bar nan2 0 1 1這樣做df.groupby(df.columns,axis=1).max()確實可以執(zhí)行我希望在較舊版本的Pandas / Python上執(zhí)行的操作,但不適用于最新版本。這是我得到的最新版本: col1 col2 col30 nan nan Baz1 nan nan nan2 0 1 1有任何想法嗎?
3 回答

catspeake
TA貢獻1111條經(jīng)驗 獲得超0個贊
我認為您transpose首先需要數(shù)據(jù)框,reset the index然后rename是重復的index列值,最后使用groupby。
df_t = df.T.reset_index()
df_t["index"] = df_t["index"].str.split(".").str[0]
result = df_t.groupby("index").first().T
輸出
Out[57]:
index col1 col2 col3
0 Foo Bar Baz
1 NaN Bar NaN
2 0 1 1
添加回答
舉報
0/150
提交
取消