Python 如何将lower()应用于列?
在一个数据框架中,将所有类似文本的列小写的正确方法是什么?我在尝试这种方法Python 如何将lower()应用于列?,python,pandas,Python,Pandas,在一个数据框架中,将所有类似文本的列小写的正确方法是什么?我在尝试这种方法 def lowercase(col): if isinstance(col, __pandas_object_type__): return col.str.lower() df = df.apply(lowercase) 其中,\uuuuuu\u对象\u类型\uuuuu只是一个用于标识对象类型或字符串类型的占位符。我知道,对于日期和时间,这类似于pd.DatetimeIndex,但我找不到适合
def lowercase(col):
if isinstance(col, __pandas_object_type__):
return col.str.lower()
df = df.apply(lowercase)
其中,\uuuuuu\u对象\u类型\uuuuu
只是一个用于标识对象类型或字符串类型的占位符。我知道,对于日期和时间,这类似于pd.DatetimeIndex
,但我找不到适合我的案例的正确替代方案
感谢您的帮助请尝试每一列,如果失败,请通过:
for col in df.columns:
try:
df[col] = df[col].str.lower()
except AttributeError:
pass
这样可以避免显式类型检查
警告:这将采用其中包含字符串的混合类型列,并将非字符串项替换为
NaN
只要尝试每个列,如果失败则通过:
for col in df.columns:
try:
df[col] = df[col].str.lower()
except AttributeError:
pass
这样可以避免显式类型检查
警告:这将采用包含字符串的混合类型列,并将非字符串项替换为
NaN
df.update(df.select_dtypes(include=['object'])。apply(pd.Series.str.lower,axis=1))@WeNYoBen这将在混合python类型的列上失败,不是吗?@PMende我不确定他真实数据中的混合类型,如果数据有混合类型,为了数据安全起见,我们应该降级数据类型。@WeNYoBen我刚刚检查过。您的方法显式失败。Mine无声地失败:它将混合的str
/numeric列转换为str
和NaN
列,在该列中以前有numerics.df.update(df.select_dtypes(include=['object'])。apply(pd.Series.str lower,axis=1))@WeNYoBen这将在混合python类型的列上失败,不是吗?@PMende我不确定他真实数据中的混合类型,如果数据有混合类型,为了数据安全起见,我们应该降级数据类型。@WeNYoBen我刚刚检查过。您的方法显式失败。Mine无声地失败:它将混合的str
/numeric列变为列,列中有str
和NaN
,而以前列中有数字。