Как я могу переместить значения из одного столбца в другой столбец по строкам? - PullRequest
1 голос
/ 20 сентября 2019

У меня есть следующий фрейм данных:

                                   preference                     Other
588                                       NaN       goes to work with sister
461                                       NaN                    google
88                                        NaN                 bybus, mobike
44                                        NaN                      TMB
141                                       NaN                     Smou
741                                       NaN                     Scoot
90                                        NaN                  SDFASDAF
612                                       NaN            Reby (electric scooter)
217                                       NaN                    Moovit
453                                       NaN                   Leasing
427                                       NaN                   Leasing
162                                       NaN                   LEASING
247                                       NaN                 JUSTMOOVE
459                                       NaN                  Free now
131                                       NaN                     Drivy
510                                       NaN                    Car2go
185                                       NaN                    Cabify
742                                       NaN                    Cabify
557                                       NaN                public transport
0                                      No app                      NaN
1                                         NaN                      NaN
2                                      No app                      NaN
3                                      No app                      NaN

Я хочу переместить первые 19 значений только из столбца Other в столбец preference.Этот фрейм данных является подмножеством большего и сортируется по столбцу Other по убыванию, чтобы получить этот результат.

Я пробовал это:

df[["preference", "Other"]].sort_values(by = "Other",  ascending = False)["preference"].iloc[0:19] = df["Other"].sort_values( ascending = False).iloc[0:19]

Но это даетназад никаких результатов.Может ли кто-нибудь помочь мне с этим, пожалуйста?Как я могу получить желаемый результат?

Большое спасибо заранее

1 Ответ

1 голос
/ 20 сентября 2019

Вы можете сначала отсортировать и присвоить оригиналу:

df = df.sort_values(by = "Other",  ascending = False)

, а затем переназначить значения, выбрав DataFrame.iloc с помощью Index.get_loc

df.iloc[0:19, df.columns.get_loc("preference")] = df.iloc[0:19, df.columns.get_loc("Other")]

Или используйте DataFrame.loc с выбором значений индекса путем индексации:

df.loc[df.index[0:19], "preference"] = df.loc[df.index[0:19], "Other"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...