如何将DataFrame中的空值替换为NaN或删除含空值的行
处理DataFrame中的空值行
我有一个部分行包含空值的DataFrame,示例如下:
ID Date Price Curr A Jan 21 (10,0) USD B Aug 8 (10,0) USD C Sep 29 (10,0) USD settle Aug 24 ( ,)
其中最后一行的Price和Curr列存在空值,需要删除含空值的行,得到如下结果:
ID Date Price Curr A Jan 21 (10,0) USD B Aug 8 (10,0) USD C Sep 29 (10,0) USD
示例初始化代码
import pandas as pd data = { "ID": ["A", "B", "C", "settle"], "Date": ["Jan 21", "Aug 8", "Sep 29", "Aug 24"], "Price": [(10,0), (10,0), (10,0), ()], "Curr": ["USD", "USD", "USD", ""] } df = pd.DataFrame(data)
解决方案
方法1:替换空值为NaN后删除
先将空元组()和空字符串""替换为NaN,再调用dropna()删除包含空值的行:
import numpy as np # 批量替换空值为NaN df.replace({"": np.nan, (): np.nan}, inplace=True) # 删除含NaN的行 df_cleaned = df.dropna()
方法2:直接筛选非空行
通过条件判断直接筛选出Price非空元组且Curr非空字符串的行:
df_cleaned = df[(df["Price"] != ()) & (df["Curr"] != "")]
结果验证
执行任意一种方法后,打印清理后的DataFrame:
print(df_cleaned)
输出结果:
ID Date Price Curr 0 A Jan 21 (10, 0) USD 1 B Aug 8 (10, 0) USD 2 C Sep 29 (10, 0) USD
内容的提问来源于stack exchange,提问作者iBeMeltin
相关产品推荐
相关产品推荐

