熊猫基于拆分另一列添加新列

dagg3r

我有一个如下所示的熊猫数据框:

A              B
US,65,AMAZON   2016
US,65,EBAY     2016

我的目标是看起来像这样:

A              B      country    code    com
US.65.AMAZON   2016   US         65      AMAZON
US.65.AMAZON   2016   US         65      EBAY

我知道这个问题在这里这里之前都曾被问过没有一个对我有用。我努力了:

df['country','code','com'] = df.Field.str.split('.')

df2 = pd.DataFrame(df.Field.str.split('.').tolist(),columns = ['country','code','com','A','B'])

我想念什么吗?任何帮助深表感谢。

耶斯列尔

您可以使用splitwith参数expand=True[]在左侧添加一个

df[['country','code','com']] = df.A.str.split(',', expand=True)

然后replace ,.

df.A = df.A.str.replace(',','.')

print (df)
              A     B country code     com
0  US.65.AMAZON  2016      US   65  AMAZON
1    US.65.EBAY  2016      US   65    EBAY

DataFrame如果没有NaN,则使用构造函数的另一种解决方案

df[['country','code','com']] = pd.DataFrame([ x.split(',') for x in df['A'].tolist() ])
df.A = df.A.str.replace(',','.')
print (df)
              A     B country code     com
0  US.65.AMAZON  2016      US   65  AMAZON
1    US.65.EBAY  2016      US   65    EBAY

您也可以在构造函数中使用列名,但这concat是必需的:

df1=pd.DataFrame([x.split(',') for x in df['A'].tolist()],columns= ['country','code','com'])
df.A = df.A.str.replace(',','.')
df = pd.concat([df, df1], axis=1)
print (df)
              A     B country code     com
0  US.65.AMAZON  2016      US   65  AMAZON
1    US.65.EBAY  2016      US   65    EBAY

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章