繁体   English   中英

如何拆分熊猫数据框中的列值

[英]How to split column values in a pandas dataframe

如何在不创建更多列的情况下拆分具有字符串的 DataFrame 中的单个列。 并摆脱括号。

例如两行看起来像这样:

df = pd.DataFrame({'Ala Carte':'||LA1: 53565 \nCH2: 54565', 
                'Blistex':'|Cust: 65565\nCarrier: 2565|', 
                'Dermatology':'||RTR1\n65331\n\nRTR2\n65331'})

我希望输出数据框看起来像这样,其中信息列是一个字符串:

Customer      Information

Ala Carte     LA1: 53565 
              CH2: 54565

Blistex       Cust: 65565
              Carrier: 2565

Dermatology   RTR1: 65331
              RTR2: 65331

在信息的同一列内

这应该这样做:

import pandas as pd

### CREATE DATAFRAME
df = pd.DataFrame({'name' : ['Ala Carte', 'Blistex'],
                   'information': ['||LA1: 53565 \nCH2: 54565',
                                   '|Cust: 65565\nCarrier: 2565|']
                  })

### SPLIT COLUMNS INTO A LIST 
df['information'] = df['information'].apply(lambda x: x.replace("|", "").split("\n"))

### EXPLODE THE COLUMN
df.explode('information')

我决定将 '\\n' 替换为 '||" 作为分隔两个不同值的一种方式。使用此 def 组合两列

def combine_with_nan(x, cols):
    combined=''
    for column in cols:
        try:
            np.isnan(x[column])
            Temp = ''
        except:
            Temp = x[column]
        combined= combined + ' || ' + Temp

    return combined 
cols=['Columns you want to merge']
practicedf = practicedf.apply(combine_with_nan, axis=1,args=(cols,)).to_frame().replace(r"\\n"," || ", regex=True)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM