【发布时间】: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”怎么没有定义?
【问题讨论】:
我有一个数据框,其中某些行包含由“&”分隔的多个值,我想只保留这些行中的第一个值。
示例:
| 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”怎么没有定义?
【问题讨论】:
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)
【讨论】: