将for循环转换为列表理解?

时间:2017-07-18 01:54:29

标签: python list list-comprehension

这已经杀了我!

知道如何将其转换为列表理解吗?

for x in dataframe:
    if dataframe[x].value_counts().sum()<=1:
        dataframe.drop(x, axis=1, inplace=True)

2 个答案:

答案 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]

这将保留具有多个唯一值的行。