Преобразование дробей в серии данных в плавающее - PullRequest
0 голосов
/ 26 марта 2019

В Python 3.x как я могу преобразовать столбец Dataframe, содержащий строки дроби и значения NaN, в числа с плавающей точкой?Я попробовал несколько вещей, но не нашел адекватного решения.

Так что, если у меня есть фрейм данных, "df", это выглядит так:

     a      b
0   John   20/1
1   Bob    NaN
2   Tim    9/2

Как мне закончитьс DF выглядит так:

      a      b
0   John   20.0
1   Bob    1000.0
2   Tim    4.5

Спасибо за любые рекомендации, которые вы готовы предоставить!

Ответы [ 4 ]

0 голосов
/ 26 марта 2019
df['b'] = pd.eval(df['b'].fillna(1000.0))
df.head()
0 голосов
/ 26 марта 2019

Или с apply:

df.b = df.b.fillna(1000).apply(pd.eval)

А теперь:

print(df)

Есть:

      a       b
0  John    20.0
1   Bob  1000.0
2   Tim     4.5
0 голосов
/ 26 марта 2019

Попробуйте ниже:

df = df.fillna(1000.0)

df.b = [eval(str(e)) for e in df.b]

0 голосов
/ 26 марта 2019

Магия eval от pandas

df.b=pd.eval(df.b.fillna(1000))
df
Out[25]: 
      a     b
0  John    20
1   Bob  1000
2   Tim   4.5
...