【发布时间】:2021-10-13 11:16:05
【问题描述】:
我有一个包含数百列的 pandas 数据框,我需要知道两列中唯一元素的数量。 以下是数据示例:
df2 = pd.DataFrame(data={
'colA_1': ["12.456.", "......7", "..34..7"],
'colA_2': ["1......", "1.....7", "..34..7"],
'ID': ["idx1", "idx1", "idx2"]})
我做的是:
- 连接两列
- 计算唯一元素。
我是这样做的:
df['colA_1'] = df['colA_1'].apply(list)
df['colA_2'] = df['colA_2'].apply(list)
df['colA'] = df['colA_1'] + df['colA_2']
df['colA'] = df. colA.nunique()
但我收到此错误:
TypeError: unhashable type: 'list'
你知道如何解决这个问题吗?
【问题讨论】:
-
能否提供数据示例?
-
@mozway 当然,抱歉遗漏
-
“12.456”对你来说是什么元素。还是“1”、“2”、“.”等?
-
@mozway "1"、"2" 等是一个元素,因为当我使用
apply(list)时,"12.456."变为['1', '2', '.', '4', '5', '6', '.'] -
好的,那么我提供了一个解决方案。在这种情况下它给了我 8 个
标签: python pandas list dataframe