Python Pandas заменяет числовое значение на ближайшее нечисловое сверху - PullRequest
0 голосов
/ 13 декабря 2018

У меня возникла проблема, и я хотел бы помочь вам решить:

Предположим, есть столбец с несколькими строками, как показано на рисунке ниже. Я хочу заменить все числовые значения ближайшим нечисловым значением извыше, как это сделать с питоном и пандами?большое спасибо.

нажмите, чтобы увидеть картинку

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Используя str.isdigit и Series.where:

df['A'].where(~df['A'].str.isdigit()).ffill()

или:

df['A'].where(df['A'].str.isalpha()).ffill()
0      AB
1      AB
2      AB
3      AB
4      AB
5      CD
6      CD
7      CD
8     EFG
9     EFG
10    EFG
11    EFG
Name: A, dtype: object
0 голосов
/ 13 декабря 2018

Используйте to_numeric с notna для логической маски, замените на NaN s на mask и затем заполните предыдущие значения:

mask = pd.to_numeric(df['col'], errors='coerce').notna()
df['col'] = df['col'].mask(mask).ffill()
print (df)
    col
0    AB
1    AB
2    AB
3    AB
4    AB
5    CD
6    CD
7    CD
8   EFG
9   EFG
10  EFG
11  EFG
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...