Добавьте конкретный символ к значению столбца, если не пантан-питон - PullRequest
1 голос
/ 04 октября 2019

Я хотел бы добавить определенный символ к значению столбца, если это не значение нан.

My df:

var 1     var2
prod A    100
prod b    NaN

Ожидается мой результат:

var1      var2
prodA     100T
prodb     NaN

Я пытался это сделать:

df['var2'] = df['var2'].astype(str) + "T"

Но результат не очень хороший:

var1      var2
prodA     100T
prodb     nanT

Кто-то может мне помочь, пожалуйста?

Ответы [ 2 ]

2 голосов
/ 04 октября 2019

Вы можете использовать Series.mask :

df['var2'].mask(df['var2'].notna(),df['var2'].astype(str)+'T',inplace=True)
print(df)

    var  1    var2
0  prod  A  100.0T
1  prod  b     NaN

или DataFrame.loc :

df.loc[df['var2'].notna(),'var2']=df.loc[df['var2'].notna(),'var2'].astype(str)+'T'
print(df)

    var  1    var2
0  prod  A  100.0T
1  prod  b     NaN
0 голосов
/ 04 октября 2019

Удаление пропущенных значений с помощью Series.dropna и обработка с преобразованием в строки; пропущенные значения создаются после присвоения обратно столбцу var2:

df['var2'] = df['var2'].dropna().astype(str) + "T"
print (df)
    var  1    var2
0  prod  A  100.0T
1  prod  b     NaN

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

df['var2'] = df['var2'].dropna().astype(int).astype(str) + "T"
print (df)
    var  1  var2
0  prod  A  100T
1  prod  b   NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...