我有一些数据,我想用...
替换点Nan
。
但是,当我将列['Cost']
相乘时,'Nan'
也会增加:
import pandas as pd
import numpy as np
df = pd.DataFrame([{'Name': 'Chris', 'Item Purchased': 'Sponge', 'Cost': 22.50},
{'Name': 'Kevyn', 'Item Purchased': 'Kitty Litter', 'Cost': 2.50},
{'Name': 'Filip', 'Item Purchased': 'Spoon', 'Cost': '...'}],
index=['Store 1', 'Store 1', 'Store 2'])
df.replace ('...', 'Nan', inplace =True)
df['Cost']*=10
df
如何使数字成倍增加?
答案 0 :(得分:3)
请勿使用字符串,但请使用np.NaN
。
答案 1 :(得分:1)
一个字符串可以相乘(好吧,当乘以时更好地说“重复”):
>>> 'nan' * 10
'nannannannannannannannannannan'
但你想要“数字”nan
:
>>> float('nan') * 10
nan
请替换为float
nan
:
>>> df.replace ('...', float('nan'), inplace =True)
>>> df['Cost']*=10
>>> df
Cost Item Purchased Name
Store 1 225.0 Sponge Chris
Store 1 25.0 Kitty Litter Kevyn
Store 2 NaN Spoon Filip
答案 2 :(得分:0)
如果您从CSV文件中读取数据并获得'...'
,则最简单的方法是指示Pandas.read_csv '...'
为NaN
值,使用na_values
参数:
na_vals = ['...', '', '#N/A', '#N/A N/A', '#NA', '-1.#IND', '-1.#QNAN', '-NaN', '-nan', '1.#IND', '1.#QNAN', 'N/A', 'NA', 'NULL']
df = pd.read_csv(..., na_values=na_vals)