python用逗号分隔文本到不同的列

问题描述 投票:3回答:2

我从数据库中提取数据并写入新的Excel文件以获取报告。我的问题是,最后一列数据的数据是用逗号分隔的,需要分成不同的列。

作为一个例子,我有如下数据:

Name  Info
Mike  "a, b, c, d"
Joe  "a, f, z"

我需要将这些字母分成不同的列。 a,b等等不必排列,以便每个字母都在“正确”列中。它们只需要分成不同的列。

我在Python中这样做。我愿意使用像Pandas这样的其他库。将包括其他列,而不仅仅是两列。我做了一个简单的例子。

任何帮助表示赞赏。

python excel pandas
2个回答
2
投票

来自熊猫str.split

df=pd.concat([df,df.Info.str.split(',',expand=True)],1)
df
Out[611]: 
   Name        Info  0   1   2     3
0  Mike  a, b, c, d  a   b   c     d
1   Joe     a, f, z  a   f   z  None

4
投票

达蒙:

df.assign(**df['Info'].str.split(',', expand=True).add_prefix('Info_'))

输出:

   Name        Info Info_0 Info_1 Info_2 Info_3
0  Mike  a, b, c, d      a      b      c      d
1   Joe     a, f, z      a      f      z   None

注意:您也可以使用join而不是assign(使用@coldspeed \s*来扩展空格):

df.join(df['Info'].str.split('\s*,\s*', expand=True).add_prefix('Info_'))
© www.soinside.com 2019 - 2024. All rights reserved.