python - 应用(设置)到熊猫数据框中的两列
问题描述
我在数据框中有三列。我想让第二列和第三列有集合而不是列表。使用df['column_name_2 and column_name_3'].apply(set)
会导致错误,因为据我了解,这个函数只需要 1 个参数。然而,将它们分成两个独立的函数,完全消除了第三列。
这就是我所拥有的:
column_1 column_2 column_3
1 [lk, 18m] [kjaf]
这就是我要的:
column_1 column_2 column_3
1 {lk, 18m} {kjaf}
解决方案
我认为需要在嵌套列表中定义列,然后applymap
使用set
s:
df[['column_2', 'column_3']] = df[['column_2', 'column_3']].applymap(set)
或使用循环:
cols = ['column_2', 'column_3']
for c in cols:
df[c] = df[c].apply(set)
样品:
df = pd.DataFrame({'column_1': [1, 1],
'column_2': [['lk', '18m'], ['lk', 'r']],
'column_3': [['kjaf'], ['ddd']]})
print (df)
column_1 column_2 column_3
0 1 [lk, 18m] [kjaf]
1 1 [lk, r] [ddd]
df[['column_2', 'column_3']] = df[['column_2', 'column_3']].applymap(set)
print (df)
column_1 column_2 column_3
0 1 {18m, lk} {kjaf}
1 1 {r, lk} {ddd}
推荐阅读
- sql - 使用 SQL 联接时列名无效
- android - 颤振构建apk失败
- python - 在 pandas 中拆垛时保持顺序
- sql - 如何从oracle中的时间戳列中获取基于当前月份和年份的记录
- angular - 如何使用多个路由参数改进代码?
- selenium - 无法运行量角器测试
- flutter - 如何删除 Flutter Intl 中未使用的键
- amazon-s3 - 将 Aurora 数据迁移到 Redshift DWH 的好方法是什么?
- javascript - 如何分别获取国家代码和电话号码并根据javascript中的国家代码验证ph号码的长度?
- java - Java中的一个字符是两个字节?