我正在熊猫中尝试通过使用定界符分割列值来获取空间的第n个值

时间:2019-06-07 17:48:11

标签: python pandas

我创建了一个数据框Create,其中的csv数据如下:

df

我试图通过将col_1,col_2 001,JOHN VARCHAR(11) NOT NULL^RANDY VARCHAR(2) NOT NULL^MICHAEL VARCHAR(105) NOT NULL^DATE STRING 002,Danny VARCHAR(87)^EDWARD VARCHAR(4) NOT NULL^ROB VARCHAR(73) NOT NULL 除以^分隔符来获得空间分隔符的第二个值,如df下方

col_2

我在下面使用,但无法获得空格的第二个值

col_1,col_2,col_3
001,JOHN VARCHAR(11) NOT NULL^RANDY VARCHAR(2) NOT NULL^MICHAEL VARCHAR(105) NOT NULL^DATE STRING,VARCHAR(11)^VARCHAR(2)^VARCHAR(105)^STRING
002,Danny VARCHAR(87)^EDWARD VARCHAR(4) NOT NULL^ROB VARCHAR(73) NOT NULL,VARCHAR(87)^VARCHAR(4)^VARCHAR(73)

2 个答案:

答案 0 :(得分:1)

您在正确的路径上,可以使用col2字符拆分^的值,并获取^联接的数据类型并将其分配给{{1} }:

col3

结果

import pandas as pd

data = {'col1':['001','002'],
        'col2': ['JOHN VARCHAR(11) NOT NULL^RANDY VARCHAR(2) NOT NULL^MICHAEL VARCHAR(105) NOT NULL^DATE STRING',
                 'Danny VARCHAR(87)^EDWARD VARCHAR(4) NOT NULL^ROB VARCHAR(73) NOT NULL']}
df = pd.DataFrame.from_dict(data)

df['col3'] = list(map(lambda x: '^'.join([col.split(' ')[1] for col in x]), df.col2.str.split('^')) )

答案 1 :(得分:1)

它可能无法直接回答您的问题,但我认为该问题应与如何爆炸熊猫数据框内的列表有关。

df["col_2"].str.split("^", expand=True).stack().reset_index()

enter image description here