[英]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.