分析数据时,空单元格可能会给出错误的结果。
处理空单元格的一种方法是删除包含空单元格的行。
这通常是可以的,因为数据集可能非常大,删除几行不会对结果产生太大影响。
返回一个没有空单元格的新数据框:
import pandas as pd
df = pd.read_csv('data.csv')
new_df = df.dropna()
print(new_df.to_string())
亲自试一试 »
笔记:默认情况下,dropna()
方法返回一个新的DataFrame,并不会改变原来的。
如果要更改原始 DataFrame,请使用inplace = True
参数:
删除所有具有 NULL 值的行:
import pandas as pd
df = pd.read_csv('data.csv')
df.dropna(inplace = True)
print(df.to_string())
亲自试一试 »
笔记:现在dropna(inplace = True)
不会返回新的 DataFrame,但会从原始 DataFrame 中删除所有包含 NULL 值的行。
处理空单元格的另一种方法是插入新的值代替。
这样您就不必因为某些空单元格而删除整行。
这个fillna()
方法允许我们用值替换空单元格:
将 NULL 值替换为数字 130:
import pandas as pd
df = pd.read_csv('data.csv')
df.fillna(130, inplace = True)
亲自试一试 »
上面的示例替换了整个数据框中的所有空单元格。
要仅替换一列的空值,请指定列名对于数据框:
将 "Calories" 列中的 NULL 值替换为数字 130:
import pandas as pd
df = pd.read_csv('data.csv')
df["Calories"].fillna(130, inplace = True)
亲自试一试 »
替换空单元格的常见方法是计算列的平均值、中值或众数。
Pandas使用mean()
median()
和mode()
计算指定列的相应值的方法:
计算 MEAN,并用它替换任何空值:
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].mean()
df["Calories"].fillna(x, inplace = True)
亲自试一试 »
意思是= 平均值(所有值的总和除以值的数量)。
计算 MEDIAN,并用它替换任何空值:
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].median()
df["Calories"].fillna(x, inplace = True)
亲自试一试 »
中位数= 将所有值升序排序后,中间的值。
计算 MODE,并用它替换任何空值:
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].mode()[0]
df["Calories"].fillna(x, inplace = True)
亲自试一试 »
模式= 最常出现的值。
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!