【问题标题】:How do I split a string and ignore the rest for all columns in pandas?如何拆分字符串并忽略 pandas 中所有列的其余部分?
【发布时间】:2021-11-05 09:18:10
【问题描述】:

我有一个数据框,其中某些行包含由“&”分隔的多个值,我想只保留这些行中的第一个值。

示例:

A B
1&2 3
3 5&6

我想要的输出是:

A B
1 3
3 5

这是我的代码:

df.apply(lambda x: i[0]  for i in x.split("&"))

我收到以下错误:

NameError: name 'x' is not defined

“x”怎么没有定义?

【问题讨论】:

    标签: pandas split apply


    【解决方案1】:

    使用DataFrame.applymap:

    df = df.applymap(lambda x: x.split("&")[0] if isinstance(x, str) else x)
    

    如果需要省略数字列,则处理字符串或带有数字列的混合字符串:

    cols = df.select_dtypes(object).columns
    df[cols] = df[cols].applymap(lambda x: x.split("&")[0] if isinstance(x, str) else x)
    

    【讨论】:

      最近更新 更多