2
在pandas
数据帧,我有一个姓田的,看起来像在熊猫,设置一个新的列和更新现有列
df = pd.DataFrame(['Jones Jr', 'Smith'], columns=['LastName'])
我想设置一个名为“一代”的新列,而剥出一代为姓,所以结局是这样的:
df2 = pd.DataFrame([('Jones', 'Jr'), ('Smith', '')], columns=['LastName', 'Generation'])
我可以设置生成列,然后回去和姓氏去掉代:
df.loc[df['LastName'].str[-3:] == ' Jr', 'Generation'] = 'Jr'
df.loc[df['LastName'].str[-3:] == ' Jr', 'LastName'] = df['LastName'].str[:-3]
但是,这是两个步骤,似乎在一次执行更新是最好的。
我想过申请,但它适用于两列匹配X和我找不到任何接近。
可以命名列,以及,如'df.LastName.str.extract(r“(?P \ w +)\ s?(?P Jr | Sr?)”,expand = True)' –
@MichaelGriffiths,谢谢,我已经更新了我的答案因此... – MaxU