は
pd.Series([np.unique(x) for _, x in df.iteritems()], df.columns)
col1 [4, 66, 85, 28, 88, 30, 38, 50, 25, 58]
col2 [58, 89, 48, 3, 60, 71, 23, 7, 50, 94]
col3 [89, 38, 32, 27, 99, 2, 29, 68, 1, 67]
col4 [15, 6, 60, 12, 11, 53, 2, 87, 10, 54]
col5 [75, 11, 97, 66, 19, 10, 22, 8, 20, 1]
dtype: object
データフレーム
df
df = pd.DataFrame(
np.random.randint(1, 100, (10, 5)),
columns=['col{}'.format(i) for i in range(1, 6)]
)
print(df)
col1 col2 col3 col4 col5
0 4 58 89 15 75
1 66 89 38 6 11
2 85 48 32 60 97
3 28 3 27 12 66
4 88 60 99 11 19
5 30 71 2 53 10
6 38 23 29 2 22
7 50 7 68 87 8
8 25 50 1 10 20
9 58 94 67 54 1
オプション1
はpd.Series
、np.unique
の組み合わせを使用して考えてみましょう、とリストの内包
オプション2
使用groupby
+ np.unique
df.groupby(axis=1, level=0).apply(np.unique)
col1 [4, 25, 28, 30, 38, 50, 58, 66, 85, 88]
col2 [3, 7, 23, 48, 50, 58, 60, 71, 89, 94]
col3 [1, 2, 27, 29, 32, 38, 67, 68, 89, 99]
col4 [2, 6, 10, 11, 12, 15, 53, 54, 60, 87]
col5 [1, 8, 10, 11, 19, 20, 22, 66, 75, 97]
dtype: object
感謝。あなたのソリューションは素晴らしいものです。私は1つだけを選択できます。 – moron