Python 使用熊猫将字符串旋转到更多列中

Python 使用熊猫将字符串旋转到更多列中,python,python-3.x,pandas,pivot,Python,Python 3.x,Pandas,Pivot,我的表格如下所示: import pandas as pd d = {'col1': ['a>b>c']} df = pd.DataFrame(data=d) print(df) """ col1 0 a>b>c """ 我想要的输出应该是这样的: d1 = {'col1': ['a>b>c'],'col11': ['a'],'col12': ['b'],'col13': ['c']} d1 = pd.DataFrame(data=d1) print

我的表格如下所示:

import pandas as pd
d = {'col1': ['a>b>c']}
df = pd.DataFrame(data=d)
print(df)
"""
   col1
0  a>b>c
"""
我想要的输出应该是这样的:

d1 = {'col1': ['a>b>c'],'col11': ['a'],'col12': ['b'],'col13': ['c']}
d1 = pd.DataFrame(data=d1)
print(d1)
"""    
     col1 col11 col12 col13
 0  a>b>c     a     b     c
"""

我必须运行
.split('>')
方法,但我不知道如何继续。有什么帮助吗

使用
拆分

d = {'col1': ['a>b>c']}
df = pd.DataFrame(data=d)

df = pd.concat([df, df.col1.str.split('>', expand=True)], axis=1)
df.columns = ['col1', 'col11', 'col12', 'col13']
df
输出:

    col1    col11   col12   col13
0   a>b>c   a        b        c

使用
拆分

d = {'col1': ['a>b>c']}
df = pd.DataFrame(data=d)

df = pd.concat([df, df.col1.str.split('>', expand=True)], axis=1)
df.columns = ['col1', 'col11', 'col12', 'col13']
df
输出:

    col1    col11   col12   col13
0   a>b>c   a        b        c

您只需使用
str.split('>')
进行拆分并展开数据框即可

import pandas as pd
d = {'col1': ['a>b>c'],'col2':['a>b>c']}
df = pd.DataFrame(data=d)
print(df)
col='col1'
#temp = df[col].str.split('>',expand=True).add_prefix(col)
temp = df[col].str.split('>',expand=True).rename(columns=lambda x: col + str(int(x)+1))
temp.merge(df,left_index=True,right_index=True,how='outer')
输出:

如果您想在多个列上执行此操作,您也可以

for col in df.columns:
    temp = df[col].str.split('>',expand=True).rename(columns=lambda x: col + str(int(x)+1))
    df = temp.merge(df,left_index=True,right_index=True,how='outer')
输出:


您只需使用
str.split('>')
进行拆分并展开数据框即可

import pandas as pd
d = {'col1': ['a>b>c'],'col2':['a>b>c']}
df = pd.DataFrame(data=d)
print(df)
col='col1'
#temp = df[col].str.split('>',expand=True).add_prefix(col)
temp = df[col].str.split('>',expand=True).rename(columns=lambda x: col + str(int(x)+1))
temp.merge(df,left_index=True,right_index=True,how='outer')
输出:

如果您想在多个列上执行此操作,您也可以

for col in df.columns:
    temp = df[col].str.split('>',expand=True).rename(columns=lambda x: col + str(int(x)+1))
    df = temp.merge(df,left_index=True,right_index=True,how='outer')
输出:

d1.col1.str.split('>',expand=True)d1.col1.str.split('>',expand=True)