Как создать столбец, содержащий пробелы, с помощью метода assign() в Pandas

#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'}})
 

Теперь мой вопрос таков:

Я пытаюсь создать столбец, содержащий whitespace assign() метод using:

 df1.assign(Original City=df2['Current City'])
                   ^
               #white space
 

Я пытался:

 df1.assign('Original City'=df2['Current City'])
df1.assign(r'Original City'=df2['Current City'])
 

И, как и ожидалось, это дает мне ошибку:

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

Но я могу назначить свою колонку следующим образом:

 df1.assign(OriginalCity=df2['Current City'])
 

Можно ли создать столбец, содержащий пробел(пробел), используя assign() метод?

Комментарии:

1. Наличие пробелов в идентификаторах не допускается. dict(a=1) работает dict(a b=1) , но не делает

2. @anky Спасибо за информацию…. Я тоже думал об этом, но мне было интересно, есть ли способ сделать это 🙂

Ответ №1:

Вы можете использовать распаковать словарь:

 d = {'Original City':df2['Current City']}
df1.assign(**d)
 

Или распакуйте фрейм данных:

 df1.assign(**df2[['Current City']].rename({'Current City': 'Original City'}))
 

Комментарии:

1. Спасибо @Quang Hoang…. Я думал задать этот вопрос много последних дней