使用 Pandas,我如何根据第一个空格进行拆分。

新手上路,请多包涵

所以我有一列代码:“dataset.csv”

 0020-004241 purple
00532 - Blue
00121 - Yellow
055 - Greem
0025-097 - Orange

期望的输出:

 code              name_of_code
    0020-004241         purple
    00532               blue

我希望将代码和代码的单词分成两个不同的列。

我试过了:

df =pandas.read_csv(dataset.txt)

 df = pandas.concat([df, df.columnname.str.split('/s', expand=True)], 1)
df = pandas.concat([df, df.columnname.str.split('-', expand=True)], 1)

` 它给出了意想不到的输出: purple none blue none yellow none green none orange none

我应该如何正确拆分这些数据?

原文由 Jessica Warren 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 718
2 个回答

使用 str.split(" ", 1)

前任:

 import pandas as pd
df = pd.read_csv(filename,names=['code'])
df[['code','name_of_code']] = df["code"].str.split(" ", 1, expand=True)
df["name_of_code"] = df["name_of_code"].str.strip("-")
print(df)

输出:

           code name_of_code
0  0020-004241       purple
1        00532         Blue
2        00121       Yellow
3          055        Greem
4     0025-097       Orange

原文由 Rakesh 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用 lambdas 的两行代码

 df['code'] = df['code_and_name_of_code'].apply(lambda x: x.split(" ", 1)[0])
df['name_of_code'] = df['code_and_name_of_code'].apply(lambda x: x.split(" ", 1)[1].replace('-',''))

输入

 import pandas as pd
df =pd.read_csv('data.txt')

    code_and_name_of_code
0   0020-004241 purple
1   00532 - Blue
2   00121 - Yellow
3   055 - Greem
4   0025-097 - Orange

应用 Lambda

 df['code'] = df['code_and_name_of_code'].apply(lambda x: x.split(" ", 1)[0])
df['name_of_code'] = df['code_and_name_of_code'].apply(lambda x: x.split(" ", 1)[1].replace('-',''))

注意

  • x.split(” “, 1) 表示在第一个空格处拆分
  • x.split(” “, 1) 作为列表返回,其中 [0] 公开第一个空格之前的内容,[1] 公开第一个空格之后的内容

产出

    code_and_name_of_code   code         name_of_code
0   0020-004241 purple      0020-004241  purple
1   00532 - Blue            00532        Blue
2   00121 - Yellow          00121        Yellow
3   055 - Greem             055          Greem
4   0025-097 - Orange       0025-097     Orange

原文由 Grant Shannon 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题