样本数据:
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()方法创建包含“ ”空格(空格)的列?
您可以使用解包字典:
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)