下面是“pandas数据清洗(缺失值和重复值的处理)”的完整攻略。
缺失值的处理
缺失值是指数据中存在的空值或NA值。在实践中,我们会发现许多数据集中都存在缺失值,这时需要考虑如何进行缺失值处理。在pandas中,可以使用dropna()
函数或fillna()
函数来处理缺失值。
dropna()函数
dropna()
函数可以丢弃缺失值所在的行或列。该函数有以下参数:
axis
:可以指定丢弃行(axis=0)或丢弃列(axis=1),默认为0how
:可以指定丢弃规则,包括any
(只要有一个缺失值就丢弃)、all
(全部都是缺失值才丢弃),默认为any
thresh
:可以指定每行/列中至少要有几个非空值,才会保留该行/列subset
:可以指定要考虑的行/列,缺省时会考虑所有行/列
下面是一个示例:
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, np.nan, 4], 'B': [5, np.nan, np.nan, 8]})
print(df)
# Output:
# A B
# 0 1.0 5.0
# 1 2.0 NaN
# 2 NaN NaN
# 3 4.0 8.0
df_drop = df.dropna(axis=0, how='any', thresh=None, subset=None)
print(df_drop)
# Output:
# A B
# 0 1.0 5.0
# 3 4.0 8.0
fillna()函数
fillna()
函数可以用特定的值填充缺失值。该函数有以下参数:
value
:用指定的值填充缺失值,可以是标量、字典、Series或DataFramemethod
:可以指定填充方法,包括前向填充ffill、后向填充bfill等axis
:按行或列填充,缺省为按列填充inplace
:是否在原DataFrame上进行修改,默认为False
下面是一个示例:
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, np.nan, 4], 'B': [5, np.nan, np.nan, 8]})
print(df)
# Output:
# A B
# 0 1.0 5.0
# 1 2.0 NaN
# 2 NaN NaN
# 3 4.0 8.0
df_fill = df.fillna(value=0, method=None, axis=None, inplace=False)
print(df_fill)
# Output:
# A B
# 0 1.0 5.0
# 1 2.0 0.0
# 2 0.0 0.0
# 3 4.0 8.0
重复值的处理
重复值是指在数据集中出现相同的行或列,它会影响数据分析的准确性。在pandas中,可以使用duplicates()
函数或drop_duplicates()
函数来处理重复值。
duplicates()函数
duplicates()
函数可以检测重复值所在的行或列。该函数有以下参数:
subset
:用来指定要检测哪些列是否重复keep
:保留哪些重复值,默认为first
,即保留第一个,还可以是last
,即保留最后一个或False
,即全部丢弃
下面是一个示例:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3, 2], 'B': [5, 6, 7, 6]})
df_dup = df.duplicated(subset=None, keep='first')
print(df_dup)
# Output:
# 0 False
# 1 False
# 2 False
# 3 True
# dtype: bool
drop_duplicates()函数
drop_duplicates()
函数可以丢弃重复值所在的行或列。该函数有以下参数:
subset
:用来指定要检测哪些列是否重复keep
:保留哪些重复值,默认为first
,即保留第一个,还可以是last
,即保留最后一个或False
,即全部丢弃inplace
:是否在原DataFrame上进行修改,默认为False
下面是一个示例:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3, 2], 'B': [5, 6, 7, 6]})
print(df)
# Output:
# A B
# 0 1 5
# 1 2 6
# 2 3 7
# 3 2 6
df_drop = df.drop_duplicates(subset=None, keep='first', inplace=False)
print(df_drop)
# Output:
# A B
# 0 1 5
# 1 2 6
# 2 3 7
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pandas数据清洗(缺失值和重复值的处理) - Python技术站