我想使用 lambda 函数将字符串大写(来自 df,其中列 dtypes 是对象和 int)
I want to captalize strings using lambda function (from a df where columns dtypes are object and int)
我的代码:
if df.dtypes=='object':
df.applymap(lambda x: x.upper())
错误:
Series 的真值是不明确的。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()
您试图完全转换数据框。使用此代码:
for col in df.columns:
if df[col].dtype=='object':
df[col] = df[col].str.upper())
希望有用!因为我现在已经亲自检查过了..
如果您的 DataFrame
有多于一列,则 df.dtypes
不是标量。所以它没有通过条件测试 if df.dtypes=='object'
.
试试下面的代码:
for c in df.columns:
if df[c].dtype=='object':
df[c] = df[c].apply(lambda x: x.upper())
我的代码:
if df.dtypes=='object':
df.applymap(lambda x: x.upper())
错误: Series 的真值是不明确的。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()
您试图完全转换数据框。使用此代码:
for col in df.columns:
if df[col].dtype=='object':
df[col] = df[col].str.upper())
希望有用!因为我现在已经亲自检查过了..
如果您的 DataFrame
有多于一列,则 df.dtypes
不是标量。所以它没有通过条件测试 if df.dtypes=='object'
.
试试下面的代码:
for c in df.columns:
if df[c].dtype=='object':
df[c] = df[c].apply(lambda x: x.upper())