我有一个包含字符串和NaN的数据框。我想str.lower()
某些专栏名称to_lower = ['b', 'd', 'e']
。理想情况下,我可以在整个数据框中使用方法,而不是使用df[to_lower]
上的方法。我有按名称使用数据框方法的小写字母列
df[to_lower] = df[to_lower].apply(lambda x: x.astype(str).str.lower())
但我想一个办法做到这一点不分配到所选列。
df = pd.DataFrame({'a': ['A', 'a'], 'b': ['B', 'b']})
to_lower = ['a']
df2 = df.copy()
df2[to_lower] = df2[to_lower].apply(lambda x: x.astype(str).str.lower())
你的方法不结果没有分配给所选列。它返回一个新的数据框。如果你想将它们分配给新的列,'df [new_columns] = df [to_lower] .apply(lambda x:x.astype(str).str.lower())'? – Psidom
@Psidom是这就是我的意思,编辑问题 – Hatshepsut
如果您不想更改'to_lower'列,只需提供新列名作为'new_columns'。 – Psidom