例如,我有資料幀:
import pandas as pd
a = [{'name': 'RealMadrid_RT'}, {'name': 'Bavaria_FD'}, {'name': 'Lion_NS'}]
df = pd.DataFrame(a)
我需要創建新列 -> df['name_2'],接下來,從列 df['name'] 中剪切資料并粘貼到列 df['name_2']。我需要在螢屏截圖上如何獲得下一個結果

我將不勝感激
uj5u.com熱心網友回復:
使用str.extract以獲得預期的結果:
# With underscore
>>> df['name'].str.extract('(.*)(_.*)').rename(columns={0: 'name', 1: 'name_2'})
name name_2
0 RealMadrid _RT
1 Bavaria _FD
2 Lion _NS
# Without underscore
>>> df['name'].str.extract('(.*)_(.*)').rename(columns={0: 'name', 1: 'name_2'})
name name_2
0 RealMadrid RT
1 Bavaria FD
2 Lion NS
uj5u.com熱心網友回復:
如果您不想在第二列中使用下劃線,這將起作用:
df = df['name'].str.split('_', expand=True)
df.columns = ['name', 'name2']
如果您確實想要第二列中的下劃線,這將適用于:
df = df['name'].str.split('(?=_)', expand=True)
df.columns = ['name', 'name2']
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/353864.html
上一篇:比較兩個資料框列值。找出哪些值在一個df中而不是另一個
下一篇:在python中優化for回圈
