2017-02-22 7 views
1

Pandas Dataframeでデータセットの異なる値を1つの列に結合していますが、重複はありますが、どの行を削除しなくてもどうやって削除できますか? : 例:Pandas DataFrameでapply.joinを使用しているときに別の値を取得する方法

newCol 
------ 
123,456,129,123,123 
237,438,365,432,438 

)(df.newCol.drop_duplicatesを使用して、全体の行が削除されますが、私は結果になりたい:...

newCol 
------ 
123,456,129 
237,438,365,432 

あなたはsetを適用し、最初のsplit必要

答えて

0

あなたに感謝して、join

df.newCol = df.newCol.apply(lambda x: ','.join(set(str(x).split(',')))) 
print (df) 
      newCol 
0  129,123,456 
1 432,365,438,237 

しかし、あなたは前joinsetを適用することができます。

print (df) 
    0 1 2 3 4 
0 123 456 129 123 123 
1 237 438 365 432 438 

df = df.apply(lambda x: ','.join(set(x.astype(str))), axis=1) 
print (df) 
0  129,123,456 
1 432,365,438,237 
dtype: object 

またはunique

df = df.apply(lambda x: ','.join((x.astype(str)).unique()), axis=1) 
print (df) 
0  123,456,129 
1 237,438,365,432 
dtype: object 
+0

あなたのソリューションをありがとう、私はデータが整数と文字列の組み合わせであることを言及することを忘れていた..私はあなたのソリューションを使用すると、このエラーが表示されます: "AttributeError: '浮動小数点型' ...私の基本的な質問のために私を許しなさい私はpythonに新しいです – faranak777

+0

編集されたnswerを確認してください。 – jezrael

+0

このエラーが発生しました:AttributeError: 'str'オブジェクトに 'astype'属性がありません – faranak777

関連する問題