这已经杀了我!
知道如何将其转换为列表理解吗?
for x in dataframe:
if dataframe[x].value_counts().sum()<=1:
dataframe.drop(x, axis=1, inplace=True)
答案 0 :(得分:1)
[dataframe.drop(x, axis=1, inplace=True) for x in dataframe if dataframe[x].value_counts().sum() <= 1]
我还没有使用过pandas,但dataframe.drop
上的文档说它返回一个新对象,所以我认为它会起作用。
答案 1 :(得分:0)
我可能会建议采用另一种方式并过滤它,我不知道您的数据帧,但这样的事情应该有效:
counts_valid = df.T.apply(pd.value_counts()).sum() > 1
df = df[counts_valid]
或者,如果我看到你在做什么,你可能会更好
counts_valid = df.T.nunique() > 1
df = df[counts_valid]
这将保留具有多个唯一值的行。