python - 如何从熊猫数据框中选择包含非重复的列
问题描述
我想从 pandas 数据框中选择包含不重复的列,并使用这些列来组成一个子数据框。例如,我有一个这样的数据框:
x y z
a 1 2 3
b 1 2 2
c 1 2 3
d 4 2 3
“x”和“z”列具有非重复值,因此我想将它们挑选出来并创建一个新的数据框,例如:
x z
a 1 3
b 1 2
c 1 3
d 4 3
可以通过以下代码实现:
import pandas as pd
df = pd.DataFrame([[1,2,3],[1,2,2],[1,2,3],[4,2,3]],index=['a','b','c','d'],columns=['x','y','z'])
df0 = pd.DataFrame()
for i in range(df.shape[1]):
if df.iloc[:,i].nunique() > 1:
df1 = df.iloc[:,i].T
df0 = pd.concat([df0,df1],axis=1, sort=False)
但是,必须有更简单直接的方法。这些是什么?
最好的祝福
解决方案
df[df.columns[(df.nunique()!=1).values]]
也许你可以试试这个单线。
推荐阅读
- javascript - 我该如何表达这个元素?
- javascript - 如何反转 EJS forEach 循环
- javascript - Postmessage 来源和数据未定义
- java - java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger 不能转换为 java.lang.Long
- php - 将 JSON 插入 MySQL 表时转义引号
- php - PHP Math - 根据不同的范围将数据库中的值相乘
- amazon-web-services - apigateway 身体映射模板不适用于 s3 静态网站
- javascript - 如果值为零,如何创建一个类以禁用按钮
- python - 在 PyX(python)中填充闭合曲线失败
- javascript - 在特定时间加载 BLOB 视频