如何使用 python 中的索引按“/”分隔符拆分?

How do I split by "/" delimiters using index in python?

在一个 DataFrame 中,一些列在 DataFrame 中。我想使用索引将列值按“/”拆分。下面是我要拆分数据的列列表。

Eg:- split_columns = ['Fuel', 'Air Pollution Score', 'City MPG', 'Hwy MPG', 'Cmb MPG', 'Greenhouse Gas Score']

如果 Fuel 中包含数据,那么输出应该类似于 "ethanol/gas"。

这是我的代码-

split_columns = ['Fuel', 'Air Pollution Score', 'City MPG', 'Hwy MPG', 'Cmb MPG', 'Greenhouse Gas Score']

for c in split_columns:
  df1[c] = df1[c].apply(lambda x: x.split("/")[0])
  df2[c] = df2[c].apply(lambda x: x.split("/")[1])

当我执行上面的代码时,我发现了一个错误 "Index out of range"。

这里只是表示有时候,其他几栏没有"/"。因此,当没有 "/" 时,split 将只有一个元素。但是,您正在访问 x.split("/")[1]。这导致索引错误。要解决此问题,只需检查 "/" 是否存在于 x 中或仅检查拆分的长度。如果大于 1,则表示存在 "/"

我建议将 Series.str.split 与索引 str[0]str[1] 一起用于 select 第一个和第二个嵌套列表。

如果 / 不存在,则输出为 NaN 值,而不是 IndexOutOfBoundsException

for c in split_columns:
  df1[c] = df1[c].astype(str).str.split("/").str[0]
  df2[c] = df2[c].astype(str).str.split("/").str[1]

它有一个索引问题: 我找到了 2 个解决方案: 1) 我将其分成 2 个(在 Jupyter 的 2 个单元格中),此错误消失了。

对于 split_columns 中的 c: df1[c] = df1[c].apply(lambda x: x.split("/")[0]) 对于 split_columns 中的 c: df2[c] = df2[c].apply(lambda x: x.split("/")[1])

2) 我重命名了第二个索引 对于 split_columns 中的 c: df1[c] = df1[c].apply(lambda x: x.split("/")[0]) df2[c] = df2[c].apply(lambda x: x.split("/")[0])