我想使用 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())