python - 从其中一列是列表类型的 pd 数据框中选择不同的值
问题描述
我有一个表,其中一列是列表类型。我想从表中选择不同的值:
pd.DataFrame(
{
"a": ["1", "2", "1"],
"b": [['a', 'b'], ['c', 'd'], ['a', 'b']],
}
)
结果应仅包含上表中的前两行。
我尝试了 pandas unique 和 drop_duplicates 但它们似乎无法处理列表类型的列。
解决方案
您可以先将列表转换为元组,.drop_duplicates
然后再应用:
df['b'] = df['b'].apply(tuple)
df = df.drop_duplicates()
print(df)
印刷:
a b
0 1 (a, b)
1 2 (c, d)
要将元组转换回列表:
df['b'] = df['b'].apply(list)
推荐阅读
- .net-core-2.1 - 有没有办法确定某个区域的 AWS SES 服务可用性?
- angularjs - ngTagsInput - 如何阻止通过“退格”删除标签
- upgrade - HashiCorp Nomad 服务器或客户端的零停机升级
- mysql - 计算日期时间戳的出现次数
- google-api - Google Directions API - 最佳路线
- azure - Azure 数据工程师助理证书 - 准备,微软学习平台
- android - 适用于 Android 的 OkHttp:不强制执行证书/公钥固定的选项
- python - 列出所有父类和子类的 Python 文档
- node.js - 在 Jenkins 构建容器上找不到模块“反应”
- machine-learning - 平衡数据集的含义