![](/img/trans.png)
[英]Pandas: How to combine column int values if different given column is duplicated?
[英]How to delete different column names with duplicated values?
給定這個 DF:
a b c d
1 2 1 4
4 3 4 2
foo bar foo yes
在大型 pandas DF 中刪除相同但名稱不同的列的最佳方法是什么? 例如:
a b d
1 2 4
4 3 2
foo bar yes
列 c 已從上述 dataframe 中刪除,因為 a 和 c 列相同但名稱不同。 到目前為止,我試圖
df = df.iloc[:, ~df.columns.duplicated()]
但是我不清楚如何檢查 DF 中的行值?
如下使用transpose
df.T.drop_duplicates().T
我嘗試了直接的方法 - 遍歷列名並將每一列與其他列的 rest 進行比較。 使用np.all
進行完全匹配。 這些方法只用了 336ms。
repeated_columns = []
for i, column in enumerate(df.columns):
r_columns = df.columns[i+1:]
for r_c in r_columns:
if np.all(df[column] == df[r_c]):
repeated_columns.append(r_c)
new_columns = [x for x in df.columns if x not in repeated_columns]
df[new_columns]
它會給你以下 output
a b d
0 1 2 4
1 4 3 2
2 foo bar yes
df.loc[:,~df.T.duplicated()]
a b d
0 1 2 4
1 4 3 2
2 foo bar yes
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.