#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…. Я думал задать этот вопрос много последних дней