Изменение имен столбцов в пандах с помощью VLOOKUP из другого набора данных - PullRequest
0 голосов
/ 30 января 2019

Пусть ee будет набором данных pandas со следующими столбцами.

dataset columns

Я хочу переименовать все столбцы (кроме Product_Code) в соответствующие значенияиз таблицы 4 ['Период'].Например, чтобы имя столбца «M20» теперь было «2016/09», ... «M53» теперь будет «2019/06».

table4

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Выборка данных:

ee.columns = ['Product Code','M20','M21']


Month   Period
0   M20 2015/01
1   M21 2015/02

d = dict(zip(ee.Month,ee.Period)) #creates a mapping dictionary
ee.columns=pd.Series(ee.columns).replace(d) #replaces where match found
#['Product Code', '2015/01', '2015/02']
0 голосов
/ 30 января 2019

Сначала создайте словарь и передайте его rename:

ee = ee.rename(columns=dict(zip(table4['Month'], table4['Period'])))

Или передайте Series с индексом по Month столбец:

ee = ee.rename(columns=table4.set_index('Month')['Period'])

Образец :

table4 = pd.DataFrame(
             {'Month':['M0','M1','M2'],
             'Period':['2015/01','2015/02','2015/03']})

print (table4)
  Month   Period
0    M0  2015/01
1    M1  2015/02
2    M2  2015/03

ee = pd.DataFrame(columns=['Product Code','M0','M2'])

ee = ee.rename(columns=dict(zip(table4['Month'], table4['Period'])))
print (ee)
Empty DataFrame
Columns: [Product Code, 2015/01, 2015/03]
Index: []
...