Pandas dataframe переименовать столбец - PullRequest
0 голосов
/ 13 мая 2018

Я разбил информационный фрейм на две части и изменил имена столбцов по отдельности. Вот что я получил:

df1 = df[df['colname'==0]]
df2 = df[df['colname'==1]]
df1.columns = [ 'a'+ x for x in df1.columns]
df2.columns = [ 'b'+ x for x in df2.columns]

И оказалось, что в df2 столбцы начинаются с «ba», а не «b». Что случилось?

1 Ответ

0 голосов
/ 13 мая 2018

Я не могу смоделировать вашу проблему, у меня хорошо работает.

Альтернативное решение должно быть add_prefix вместо list comprehension:

df = pd.DataFrame({'colname':[0,1,0,0,0,1],
                   'C':[7,8,9,4,2,3],
                   'D':[1,3,5,7,1,0],
                   'E':[5,3,6,9,2,4],
                   'F':list('aaabbb')})

print (df)
   C  D  E  F  colname
0  7  1  5  a        0
1  8  3  3  a        1
2  9  5  6  a        0
3  4  7  9  b        0
4  2  1  2  b        0
5  3  0  4  b        1

df1 = df[df['colname']==0].add_prefix('a')
df2 = df[df['colname']==1].add_prefix('b')
print (df1)
   aC  aD  aE aF  acolname
0   7   1   5  a         0
2   9   5   6  a         0
3   4   7   9  b         0
4   2   1   2  b         0

print (df2)
   bC  bD  bE bF  bcolname
1   8   3   3  a         1
5   3   0   4  b         1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...