当前位置: 代码迷 >> python >> 如何在python中使用索引按“ /”分隔符拆分?
  详细解决方案

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

热度:85   发布时间:2023-06-27 21:21:18.0

在一个DataFrame中,DataFrame中有一些列。 我想使用索引对列值进行“ /”拆分。 以下是我要拆分数据的列的列表。

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

如果燃料中包含数据,则输出应类似于“乙醇/气体”。

这是我的代码-

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])

当我执行以上代码时,我发现错误“索引超出范围”。

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

我建议将带有索引str[0]str[1] 用于选择第一和第二嵌套列表。

如果/不存在,则输出为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])for 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])