我有以下数据框:
data = {
's1': [[1, 2], [None], [2, 3]],
's2': [[4, 5], [6, 7], [3, 2]]
}
output:
s1 s2
0 [1, 2] [4, 5]
1 NaN [6, 7]
2 [2, 3] [3, 2]
我需要获取这些列s1
和s2
的每个元素的唯一计数,并将这些计数作为行添加,如下所示:
编辑:还需要忽略计数中的无/空值.
expected output:
step count
0 1 4 -> since [1,2,3,NaN] <<- EDIT this should only be 3 ignoring NaN
1 2 6 -> since[1,2,3,4,5,6]
我的所作所为有点肮脏:
s1_unique = df['s1'].explode().unique()
s2_unique = df['s2'].explode().unique()
new_df = pd.DataFrame()
new_df['step] = [1,2]
new_df['count'] = [len(s1_unique), len(s2_unique)]
new_df['name'] = 'Others'
有没有一种"整洁"的数据帧方法来处理这个问题?