Pandas 데이터 정리 기술 공개!
소개:
데이터 분석 및 기계 학습에서 데이터 정리는 데이터를 필요한 형식과 구조로 구성하기 위해 데이터 세트를 전처리, 변환 및 필터링하는 매우 중요한 단계입니다. Pandas는 Python에서 가장 인기 있고 강력한 데이터 분석 라이브러리 중 하나이며 풍부하고 유연한 데이터 정리 도구와 작업 방법을 제공합니다. 이 기사에서는 팬더 데이터 정리의 몇 가지 기본 기술을 공개하고 독자가 이러한 기술을 더 잘 이해하고 적용할 수 있도록 구체적인 코드 예제를 제공합니다.
1. 팬더 라이브러리 및 데이터 세트 가져오기
시작하기 전에 먼저 팬더 라이브러리를 설치해야 합니다. 설치가 완료된 후 다음 코드를 사용하여 Pandas 라이브러리를 가져오고 정리해야 하는 데이터 세트를 로드할 수 있습니다.
import pandas as pd # 导入数据集 data = pd.read_csv('data.csv')
2. 데이터 세트 보기
데이터를 정리하기 전에 먼저 데이터 세트의 구조와 내용을 이해해야 합니다. pandas는 head()
, tail()
, shape
및 info( )<를 포함하여 데이터 세트를 보기 위해 일반적으로 사용되는 여러 함수를 제공합니다. /코드>등 <code>head()
、tail()
、shape
和info()
等。
代码示例:
# 查看前五行数据 print(data.head()) # 查看后五行数据 print(data.tail()) # 查看数据集的维度 print(data.shape) # 查看数据集的基本信息 print(data.info())
三、处理缺失值
缺失值是数据集中经常遇到的问题之一,而且在真实的数据集中很常见。pandas提供了处理缺失值的多种方法。常见的处理缺失值的方法有删除、填充和插值。
删除缺失值是最简单的处理方法之一,但需要慎重使用。在pandas中,可以使用dropna()
函数来删除包含缺失值的行或列。
代码示例:
# 删除包含缺失值的行 data.dropna(axis=0, inplace=True) # 删除包含缺失值的列 data.dropna(axis=1, inplace=True)
填充缺失值是另一种常用的处理方法,它可以用一个常数或其他数据集中的值来填充缺失值。在pandas中,可以使用fillna()
函数来填充缺失值。
代码示例:
# 使用0填充缺失值 data.fillna(0, inplace=True) # 使用平均值填充缺失值 data.fillna(data.mean(), inplace=True)
插值缺失值是一种更高级的处理方法,它可以根据已知数据的特征来推测缺失值。在pandas中,可以使用interpolate()
函数来进行插值处理。
代码示例:
# 线性插值处理缺失值 data.interpolate(method='linear', inplace=True) # 拟合插值处理缺失值 data.interpolate(method='quadratic', inplace=True)
四、处理重复值
重复值是另一个常见的数据集问题,它可能会导致数据分析和建模的偏差。pandas提供了几个函数来处理重复值,包括duplicated()
和drop_duplicates()
等。
可以使用duplicated()
函数来查找数据集中的重复值。该函数返回一个布尔类型的Series对象,其中包含了每个元素是否重复的信息。
代码示例:
# 查找重复值 duplicated_data = data.duplicated() # 打印重复值 print(duplicated_data)
可以使用drop_duplicates()
函数来删除数据集中的重复值。该函数返回一个经过去重后的新数据集。
代码示例:
# 删除重复值 data.drop_duplicates(inplace=True)
五、处理异常值
异常值是数据集中的异常观测值,它可能会对数据分布和模型拟合产生不良影响。pandas提供了一些函数和方法来识别和处理异常值,包括箱线图、z-score和IQR等。
箱线图是一种常用的异常值检测方法,它可以用来判断数据集中是否存在异常值。可以使用boxplot()
函数来绘制箱线图,并通过观察箱线图中的离群点来识别异常值。
代码示例:
# 绘制箱线图 data.boxplot(column='value', figsize=(10, 6)) # 显示图像 plt.show()
z-score是一种统计概念,它可以用来标准化数据并判断观测值是否偏离了平均值。在pandas中,可以使用zscore()
函数来计算z-score,并通过设定阈值来判断是否存在异常值。
代码示例:
# 计算z-score z_scores = (data - data.mean()) / data.std() # 判断是否存在异常值 outliers = z_scores[(z_scores > 3) | (z_scores < -3)] # 显示异常值 print(outliers)
IQR(Inter-Quartile Range)是一种计算概念,它可以通过计算数据集的四分位差来确定异常值的范围。在pandas中,可以使用quantile()
函数来计算四分位数,然后使用IQR公式来判断是否存在异常值。
代码示例:
# 计算四分位差 Q1 = data.quantile(0.25) Q3 = data.quantile(0.75) IQR = Q3 - Q1 # 判断是否存在异常值 outliers = data[((data < (Q1 - 1.5 * IQR)) | (data > (Q3 + 1.5 * IQR))).any(axis=1)] # 显示异常值 print(outliers)
六、转换数据类型
数据类型是数据集中一个重要的属性,它涉及到数据的存储方式、计算方式和可视化方式等。在pandas中,可以使用astype()
函数来转换数据类型。
代码示例:
# 将字符串类型转换为整数类型 data['column'] = data['column'].astype(int) # 将浮点型转换为整数类型 data['column'] = data['column'].astype(int) # 将字符串类型转换为日期类型 data['column'] = pd.to_datetime(data['column'])
七、其他常用操作
除了上述的数据清洗技巧外,pandas还提供了其他一些常用的数据清洗操作,包括重命名列、拆分列和合并列等。
可以使用rename()
函数来重命名数据集中的列。
代码示例:
# 重命名列 data.rename(columns={'old_name': 'new_name'}, inplace=True)
可以使用str.split()
函数来将含有多个值的列拆分成多个列。
代码示例:
# 拆分列 new_columns = data['column'].str.split(',', expand=True) # 重新命名新列 new_columns.columns = ['column1', 'column2', 'column3'] # 合并新列到数据集 data = pd.concat([data, new_columns], axis=1)
可以使用pd.merge()
# 新数据集1 data1 = pd.DataFrame({'key': ['A', 'B', 'C'], 'value1': [1, 2, 3]}) # 新数据集2 data2 = pd.DataFrame({'key': ['A', 'B', 'C'], 'value2': [4, 5, 6]}) # 合并数据集 merged_data = pd.merge(data1, data2, on='key') # 打印合并后的数据集 print(merged_data)
dropna()
함수를 사용하여 누락된 값이 포함된 행이나 열을 삭제할 수 있습니다. 🎜🎜코드 예: 🎜rrreeefillna()
함수를 사용하여 누락된 값을 채울 수 있습니다. 🎜🎜코드 예: 🎜rrreeeinterpolate()
함수를 사용하여 보간 처리를 수행할 수 있습니다. 🎜🎜코드 예: 🎜rrreee🎜4. 중복 값 처리🎜🎜중복 값은 또 다른 일반적인 데이터 세트 문제로, 데이터 분석 및 모델링에 편향이 발생할 수 있습니다. pandas는 duplicated()
및 drop_duplicates()
등을 포함하여 중복 값을 처리하는 여러 함수를 제공합니다. 🎜duplicated()
함수를 사용하여 데이터 세트에서 중복 값을 찾을 수 있습니다. 이 함수는 각 요소가 반복되는지 여부에 대한 정보가 포함된 Boolean Series 객체를 반환합니다. 🎜🎜코드 예: 🎜rrreeedrop_duplicates()
함수를 사용하여 중복 값을 삭제할 수 있습니다. 데이터 세트에서 . 이 함수는 중복이 제거된 새로운 데이터 세트를 반환합니다. 🎜🎜코드 예: 🎜rrreee🎜 5. 이상값 처리🎜🎜이상값은 데이터 세트의 비정상적인 관측값으로, 데이터 분포 및 모델 피팅에 부정적인 영향을 미칠 수 있습니다. Pandas는 상자 그림, z-점수, IQR 등을 포함하여 이상값을 식별하고 처리하는 몇 가지 기능과 방법을 제공합니다. 🎜boxplot()
함수를 사용하면 상자 그림을 그리고 상자 그림에서 이상값을 관찰하여 이상값을 식별할 수 있습니다. 🎜🎜코드 예: 🎜rrreeezscore()
함수를 사용하여 z-score를 계산하고 임계값을 설정하여 이상치가 있는지 확인할 수 있습니다. 🎜🎜코드 예: 🎜rrreeeQuantile()
함수를 사용하여 사분위수를 계산한 다음 IQR 공식을 사용하여 이상값이 있는지 확인할 수 있습니다. 🎜🎜코드 예: 🎜rrreee🎜 6. 데이터 유형 변환🎜🎜데이터 유형은 데이터의 저장 방법, 계산 방법 및 시각화 방법을 포함하는 데이터 세트의 중요한 속성입니다. Pandas에서는 astype()
함수를 사용하여 데이터 유형을 변환할 수 있습니다. 🎜🎜코드 예: 🎜rrreee🎜7. 기타 일반적인 작업🎜🎜위의 데이터 정리 기술 외에도 Pandas는 열 이름 바꾸기, 열 분할 및 열 병합을 포함하여 일반적으로 사용되는 몇 가지 다른 데이터 정리 작업도 제공합니다. 🎜rename()
함수를 사용하여 데이터 세트의 열 이름을 바꿀 수 있습니다. 🎜🎜코드 예: 🎜rrreeestr.split()
함수를 사용하여 다음을 포함하는 열을 분할할 수 있습니다. 다중 값 열이 여러 열로 분할됩니다. 🎜🎜코드 예: 🎜rrreeepd.merge()
함수를 사용하여 여러 열을 병합할 수 있습니다. 데이터 세트 열에 있습니다. 🎜🎜코드 예: 🎜rrreee🎜요약: 🎜이 문서에서는 일반적으로 사용되는 Pandas 데이터 정리 기술을 소개하고 구체적인 코드 예제를 제공합니다. 이러한 기술에는 누락된 값 처리, 중복 값 처리, 이상값 처리, 데이터 유형 변환 및 기타 일반적인 작업이 포함됩니다. 이러한 기술을 배우고 적용함으로써 독자는 데이터를 더 잘 처리하고 준비할 수 있으며 후속 데이터 분석 및 모델링을 위한 견고한 기반을 마련할 수 있습니다. 물론, 이 글에서 소개한 기술 외에도 pandas에는 다른 많은 기능과 방법이 있으며, 독자들은 이를 자신의 필요와 실제 상황에 따라 더 배우고 적용할 수 있습니다.
위 내용은 Pandas 데이터 정리에 대한 중요한 팁을 공개하세요!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!