11

2 つの列をグループ化することで、いくつかの変更を加えました。

Python を使用してファイルを生成したところ、2 つの列が重複していました。データフレームから重複した列を削除するには?

4

5 に答える 5

22

groupby を使用するのがおそらく最も簡単です (名前も重複していると仮定します)。

In [11]: df
Out[11]:
   A  B  B
0  a  4  4
1  b  4  4
2  c  4  4

In [12]: df.T.groupby(level=0).first().T
Out[12]:
   A  B
0  a  4
1  b  4
2  c  4

名前が異なる場合はdrop_duplicates、転置できます。

In [21]: df
Out[21]:
   A  B  C
0  a  4  4
1  b  4  4
2  c  4  4

In [22]: df.T.drop_duplicates().T
Out[22]:
   A  B
0  a  4
1  b  4
2  c  4

通常read_csv、通常、それらの名前が異なることを確認します...

于 2013-06-05T12:05:55.167 に答える
3

大きなデータフレームを扱う場合、転置は悪い考えです。メモリ効率の良い代替案については、この回答を参照してください: https://stackoverflow.com/a/32961145/759442

于 2015-10-06T03:24:07.173 に答える
3

これは私がこれまでに見つけた最高のものです。

remove = []
cols = df.columns
for i in range(len(cols)-1):
    v = df[cols[i]].values
    for j in range(i+1,len(cols)):
        if np.array_equal(v,df[cols[j]].values):
            remove.append(cols[j])

df.drop(remove, axis=1, inplace=True)

https://www.kaggle.com/kobakhit/santander-customer-satisfaction/0-84-score-with-36-features-only/code

于 2016-04-10T12:06:04.217 に答える