如何在 Pandas 中使用assign()方法创建包含空格的列

Anu*_*bas 3 python pandas

样本数据:

import pandas as pd

df1=pd.DataFrame({'Original City': {'Daimler': 'Chicago',
  'Mitsubishi': 'LA',
  'Tesla': 'Vienna',
  'Toyota': 'Zurich',
  'Renault': 'Sydney',
  'Ford': 'Toronto'}})

df2=pd.DataFrame({'Current City': {'Tesla': 'Amsterdam',
  'Renault': 'Paris',
  'BMW': 'Munich',
  'Fiat': 'Detroit',
  'Audi': 'Berlin',
  'Ferrari': 'Bruxelles'}})
Run Code Online (Sandbox Code Playgroud)

现在我的问题是:

我正在尝试创建一个包含whitespaceusingassign()方法的列:

df1.assign(Original City=df2['Current City'])
                   ^
               #white space
Run Code Online (Sandbox Code Playgroud)

我试过:

df1.assign('Original City'=df2['Current City'])
df1.assign(r'Original City'=df2['Current City'])
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,它给了我一个错误:

  File "<ipython-input-132-2ac564ac9d47>", line 1
    df1.assign(Original City=df2['Current City'])
                        ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

但我可以像这样分配我的列:

df1.assign(OriginalCity=df2['Current City'])
Run Code Online (Sandbox Code Playgroud)

是否可以使用assign()方法创建包含“ ”空格(空格)的列?

Qua*_*ang 5

您可以使用解包字典:

d = {'Original City':df2['Current City']}
df1.assign(**d)
Run Code Online (Sandbox Code Playgroud)

或者解压一个数据框:

df1.assign(**df2[['Current City']].rename({'Current City': 'Original City'}))
Run Code Online (Sandbox Code Playgroud)