원본 내용은 다음과 같습니다.
a) n번째 시트의 데이터를 읽습니다. (하위 시트는 에서 보거나 추가하거나 삭제할 수 있습니다.) 왼쪽 하단)
import pandas as pd # 每次都需要修改的路径 path = "test.xlsx" # sheet_name默认为0,即读取第一个sheet的数据 sheet = pd.read_excel(path, sheet_name=0) print(sheet) """ Unnamed: 0 name1 name2 name3 0 row1 1 2.0 3 1 row2 4 NaN 6 2 row3 7 8.0 9 """
원래 테이블의 왼쪽 상단에 내용이 채워져 있지 않은 것을 확인할 수 있으며, 읽은 결과는 "Unnamed: 0"입니다. 이는 read_excel 함수가 기본값이기 때문입니다. 테이블의 첫 번째 줄을 열 인덱스 이름으로 지정합니다. 또한 행 인덱스 이름의 경우 기본적으로 두 번째 행부터 번호가 매겨집니다(기본 첫 번째 행은 열 인덱스 이름이므로 기본 첫 번째 행은 데이터가 아니기 때문입니다). 별도로 지정하지 않으면 다음과 같이 자동으로 0부터 번호가 매겨집니다. 다음과 같습니다.
sheet = pd.read_excel(path) # 查看列索引名,返回列表形式 print(sheet.columns.values) # 查看行索引名,默认从第二行开始编号,如果不特意指定,则自动从0开始编号,返回列表形式 print(sheet.index.values) """ ['Unnamed: 0' 'name1' 'name2' 'name3'] [0 1 2] """
b) 열 인덱스 이름은 다음과 같이 사용자 정의할 수도 있습니다.
sheet = pd.read_excel(path, names=['col1', 'col2', 'col3', 'col4']) print(sheet) # 查看列索引名,返回列表形式 print(sheet.columns.values) """ col1 col2 col3 col4 0 row1 1 2.0 3 1 row2 4 NaN 6 2 row3 7 8.0 9 ['col1' 'col2' 'col3' 'col4'] """
c) 다음과 같이 n번째 열을 행 인덱스 이름으로 지정할 수도 있습니다.
# 指定第一列为行索引 sheet = pd.read_excel(path, index_col=0) print(sheet) """ name1 name2 name3 row1 1 2.0 3 row2 4 NaN 6 row3 7 8.0 9 """
d) 건너뛰기 행 데이터를 읽을 때 n번째 열
# 跳过第2行的数据(第一行索引为0) sheet = pd.read_excel(path, skiprows=[1]) print(sheet) """ Unnamed: 0 name1 name2 name3 0 row2 4 NaN 6 1 row3 7 8.0 9 """
path = "test.xlsx" # 指定第一列为行索引 sheet = pd.read_excel(path, index_col=0) print(sheet) print('==========================') print('shape of sheet:', sheet.shape) """ name1 name2 name3 row1 1 2.0 3 row2 4 NaN 6 row3 7 8.0 9 ========================== shape of sheet: (3, 3) """
1.
대괄호와 열 이름 [col_name] 을 사용하여 열의 데이터를 추출한 다음 대괄호와 인덱스 번호 [index] 를 사용하여 이 열의 특정 위치 값을 인덱싱합니다. 여기서는 name1이라는 컬럼이 인덱싱되고, 그 컬럼의 1행(인덱스는 1)에 위치한 데이터가 다음과 같이 4로 출력됩니다.
sheet = pd.read_excel(path) # 读取列名为 name1 的列数据 col = sheet['name1'] print(col) # 打印该列第二个数据 print(col[1]) # 4 """ 0 1 1 4 2 7 Name: name1, dtype: int64 4 """
2. iloc 방식, 정수로 인덱스
를 사용합니다. sheet.iloc [ ] 인덱스, 대괄호는 행과 열의 정수 위치 번호입니다(열을 행 인덱스로, 행을 열 인덱스로 제외하고 0부터 번호 매기기 시작).
a) sheet.iloc[1, 2]: 행 2, 열 3데이터를 추출합니다. 첫 번째는 행 인덱스, 두 번째는 열 인덱스입니다.
b) sheet.iloc[0:2]: 처음 두 행data
c)sheet.iloc[0:2, 0 추출 : 2]: sharding# 指定第一列数据为行索引
sheet = pd.read_excel(path, index_col=0)
# 读取第2行(row2)的第3列(6)数据
# 第一个是行索引,第二个是列索引
data = sheet.iloc[1, 2]
print(data) # 6
print('================================')
# 通过分片的方式提取 前两行 数据
data_slice = sheet.iloc[0:2]
print(data_slice)
print('================================')
# 通过分片的方式提取 前两行 的 前两列 数据
data_slice = sheet.iloc[0:2, 0:2]
print(data_slice)
"""
6
================================
name1 name2 name3
row1 1 2.0 3
row2 4 NaN 6
================================
name1 name2
row1 1 2.0
row2 4 NaN
"""
3을 통해 처음 두 행
처음 두 열 데이터를 추출합니다. loc 방법, 행 및 열 이름별 인덱스
sheet.loc[ ] 인덱스를 사용합니다. 대괄호 안에는 열의 이름 문자열 이 있습니다. iloc의 정수 인덱스가 행과 열의 이름 인덱스로 대체된다는 점을 제외하면 구체적인 사용법은 iloc 과 동일합니다. 이 인덱싱 방법은 사용하기 더 직관적입니다.
Note: iloc[1: 2]에는 2가 포함되지 않지만 loc['row1': 'row2']에는 'row2'가 포함됩니다.
# 指定第一列数据为行索引 sheet = pd.read_excel(path, index_col=0) # 读取第2行(row2)的第3列(6)数据 # 第一个是行索引,第二个是列索引 data = sheet.loc['row2', 'name3'] print(data) # 1 print('================================') # 通过分片的方式提取 前两行 数据 data_slice = sheet.loc['row1': 'row2'] print(data_slice) print('================================') # 通过分片的方式提取 前两行 的 前两列 数据 data_slice1 = sheet.loc['row1': 'row2', 'name1': 'name2'] print(data_slice1) """ 6 ================================ name1 name2 name3 row1 1 2.0 3 row2 4 NaN 6 ================================ name1 name2 row1 1 2.0 row2 4 NaN """
1. numpy 라이브러리의 isnan() 또는 isnull() pandas 라이브러리를 사용하여 비어 있는지 확인합니다. nan 과 같습니다.
sheet = pd.read_excel(path) # 读取列名为 name1 的列数据 col = sheet['name2'] print(np.isnan(col[1])) # True print(pd.isnull(col[1])) # True """ True True """2. str()을 사용하여 문자열로 변환하고
'nan' 과 같은지 확인합니다.
sheet = pd.read_excel(path) # 读取列名为 name1 的列数据 col = sheet['name2'] print(col) # 打印该列第二个数据 if str(col[1]) == 'nan': print('col[1] is nan') """ 0 2.0 1 NaN 2 8.0 Name: name2, dtype: float64 col[1] is nan """5. 조건에 맞는 데이터 찾기다음 코드를 이해해 봅시다
# 提取name1 == 1 的行 mask = (sheet['name1'] == 1) x = sheet.loc[mask] print(x) """ name1 name2 name3 row1 1 2.0 3 """6. 요소 값 수정: replacement()
sheet['name2'].replace(2, 100, inplace=True ) : name2 열의 요소 2를 요소 100으로 변경하고 그 자리에서 연산합니다.
sheet['name2'].replace(2, 100, inplace=True) print(sheet) """ name1 name2 name3 row1 1 100.0 3 row2 4 NaN 6 row3 7 8.0 9 """
sheet['name2'].replace(np.nan, 100, inplace=True) : name2 열의 빈 요소(nan)를 요소 100으로 변경하고 그 자리에서 연산합니다.
import numpy as np sheet['name2'].replace(np.nan, 100, inplace=True) print(sheet) print(type(sheet.loc['row2', 'name2'])) """ name1 name2 name3 row1 1 2.0 3 row2 4 100.0 6 row3 7 8.0 9 """7. 데이터 추가: [ ]
열을 추가하려면 [추가할 이름] 대괄호를 사용하여 직접 추가하세요.
sheet['name_add'] = [55, 66, 77]: 값이 [55, 66, 77]
path = "test.xlsx" # 指定第一列为行索引 sheet = pd.read_excel(path, index_col=0) print(sheet) print('====================================') # 添加名为 name_add 的列,值为[55, 66, 77] sheet['name_add'] = [55, 66, 77] print(sheet) """ name1 name2 name3 row1 1 2.0 3 row2 4 NaN 6 row3 7 8.0 9 ==================================== name1 name2 name3 name_add row1 1 2.0 3 55 row2 4 NaN 6 66 row3 7 8.0 9 77 """8인 name_add라는 열을 추가합니다. 데이터 삭제: del() / drop( )
a) del(sheet['name3']): del 메소드를 사용하여
sheet = pd.read_excel(path, index_col=0) # 使用 del 方法删除 'name3' 的列 del(sheet['name3']) print(sheet) """ name1 name2 row1 1 2.0 row2 4 NaN row3 7 8.0 """
b) sheet.drop('row1', axis=0)
drop 메소드를 사용하여 row1 행 삭제 , 삭제 열의 경우 해당 축=1입니다. inplace 매개변수가 True인 경우 매개변수가 반환되지 않고 원본 데이터에서 직접 삭제됩니다.inplace 매개변수가 False(기본값)인 경우 원본 데이터는 수정되지 않지만 수정된 데이터는 삭제됩니다. returnsheet.drop('row1', axis=0, inplace=True) print(sheet) """ name1 name2 name3 row2 4 NaN 6 row3 7 8.0 9 """
c)sheet .drop(labels=['name1', 'name2'], axis=1)
여러 행이나 열을 삭제하려면 label=[ ] 매개변수를 사용하세요# 删除多列,默认 inplace 参数位 False,即会返回结果 print(sheet.drop(labels=['name1', 'name2'], axis=1)) """ name3 row1 3 row2 6 row3 9 """9. file: to_excel()
1. pandas 형식의 데이터를 .xlsx 파일로 저장합니다.
names = ['a', 'b', 'c'] scores = [99, 100, 99] result_excel = pd.DataFrame() result_excel["姓名"] = names result_excel["评分"] = scores # 写入excel result_excel.to_excel('test3.xlsx')
2. 수정된 Excel 파일을 .xlsx 파일로 저장합니다.
예를 들어 원본 테이블의 nan을 100으로 수정한 후 파일을 저장합니다.import numpy as np # 指定第一列为行索引 sheet = pd.read_excel(path, index_col=0) sheet['name2'].replace(np.nan, 100, inplace=True) sheet.to_excel('test2.xlsx')test2.xlsx를 열면 결과는 다음과 같습니다.
위 내용은 Python의 Pandas 라이브러리로 Excel 데이터를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!