Python 如何将特定列的空值替换为该列中的某个值?
例如,我有一个像这样的CSV文件 身份证件 名称 项目 数量 1. Sta 面包 67 2. 丹尼 黄油 3. 艾尔 奶酪 4. 做记号 咖啡 9Python 如何将特定列的空值替换为该列中的某个值?,python,python-3.x,pandas,dataframe,numpy,Python,Python 3.x,Pandas,Dataframe,Numpy,例如,我有一个像这样的CSV文件 身份证件 名称 项目 数量 1. Sta 面包 67 2. 丹尼 黄油 3. 艾尔 奶酪 4. 做记号 咖啡 9 尝试使用替换: df['Qty'] = df['Qty'].replace('', 0).astype(int) 因此,完整的代码是: import pandas as pd df = pd.read_csv("sample.csv") df['Qty'] = df['Qty'].replace('', 0).astype(i
尝试使用
替换:
df['Qty'] = df['Qty'].replace('', 0).astype(int)
因此,完整的代码是:
import pandas as pd
df = pd.read_csv("sample.csv")
df['Qty'] = df['Qty'].replace('', 0).astype(int)
print(df)
你也可以使用
输入Sample.csv
id,name,item,Qty
1,Sta,bread,67
2,Danny,butter,
3,Elle,cheese,
4,Mark,coffee,9
输出
import pandas as pd
df = pd.read_csv("sample.csv")
print(df)
id name item Qty
0 1 Sta bread 67.0
1 2 Danny butter NaN
2 3 Elle cheese NaN
3 4 Mark coffee 9.0
df['Qty']=df['Qty'].fillna('0').astype(int)
print(df)
id name item Qty
0 1 Sta bread 67
1 2 Danny butter 0
2 3 Elle cheese 0
3 4 Mark coffee 9
您的代码将替换“数量”字段中的67.0、9.0之类的内容,但不会替换空字段values@AtomStore你是什么意思?它用67.0替换67,用9.0替换9,而不是用0@AtomStore我编辑了我的答案,请向上投票并接受如果它工作,因为有空值,它会引发ValueError:无法转换非有限值(NA或inf)对于整数,它们不是nan
,它们是空字符串。这将所有数量替换为0Ah!但没有价值观。缺少值不是意味着NaN
@U11-Forward@ArunPalanisamy不,他们的意思是”
,但我复制粘贴了csv中的OPs样本数据。当我打印时,它会为那些缺少的值提供NaN
。@U11 Forward
import pandas as pd
df = pd.read_csv("sample.csv")
print(df)
id name item Qty
0 1 Sta bread 67.0
1 2 Danny butter NaN
2 3 Elle cheese NaN
3 4 Mark coffee 9.0
df['Qty']=df['Qty'].fillna('0').astype(int)
print(df)
id name item Qty
0 1 Sta bread 67
1 2 Danny butter 0
2 3 Elle cheese 0
3 4 Mark coffee 9