簡體   English   中英

如何基於從python / pandas中現有列派生的列表創建新列?

[英]How do I create new columns based off of a list derived from an existing column in python/pandas?

我有一個數據框架,其中的列標題為“ Name”,其中包含以下格式的字符串:“ Group1name / Group2name / Group3name / Group4name”

我想基於“名稱”列和“ /”定界符創建3個新列:

級別1:“ Group1name”
級別2:“ Group1name / Group2name”
級別3:“ Group1name / Group2name / Group3name”

如何在數據框中創建這些新列?

此解決方案使用生成器表達式,該表達式基本上是嵌套的for循環。 它基於/分隔符分割在df的“ Name列中找到的字符串。 然后將其重新連接在一起,但重新連接時僅采用適當列的前n元素。

df = pd.DataFrame({'Name': ["Group1name / Group2name / Group3name / Group4name"]})

for n in range(1, 4):  # 1, 2, 3 for column indexing and naming.
    df['col_{0}'.format(n)] = ' / '.join(group for groups in df.Name.str.split(' / ') 
                                         for group in groups[:n])

>>> df.T
                                                       0
Name   Group1name / Group2name / Group3name / Group4name
col_1                                         Group1name
col_2                            Group1name / Group2name
col_3               Group1name / Group2name / Group3name

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM