这一直在杀我!将循环转换为列表理解?
任何想法如何将其转换为列表理解?
for x in dataframe:
if dataframe[x].value_counts().sum()<=1:
dataframe.drop(x, axis=1, inplace=True)
这一直在杀我!将循环转换为列表理解?
任何想法如何将其转换为列表理解?
for x in dataframe:
if dataframe[x].value_counts().sum()<=1:
dataframe.drop(x, axis=1, inplace=True)
[dataframe.drop(x, axis=1, inplace=True) for x in dataframe if dataframe[x].value_counts().sum() <= 1]
我没有使用过大熊猫还没有,但dataframe.drop
的文件说,它返回一个新的对象,所以我认为它会工作。
我可能会建议去其他方式和过滤它,我不知道你的数据帧,但这样的事情应该工作:
counts_valid = df.T.apply(pd.value_counts()).sum() > 1
df = df[counts_valid]
或者,如果我看到你在做什么,你可能会更好用
counts_valid = df.T.nunique() > 1
df = df[counts_valid]
这将只保留具有多个唯一值的行。
'dataframe'的使用让我觉得这可能是'pandas'?那是你正在使用的? “drop”是做什么的?它实际上是否修改了列表?如果不是,那么你在哪里收集创建新列表的数据? – idjaw
这对列表理解来说并不合适......是否有理由让它看起来像这样? (它不会返回任何数据,而是一遍又一遍地修改对象)。 –