1. xlsx 테이블 읽기: pd.read_excel()
원본 내용은 다음과 같습니다.
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 """
2. 테이블의 데이터 크기를 가져옵니다. Shape
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) """
3. 인덱스 데이터 방법: [ ] / loc[] / iloc[]
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 """
4. 데이터가 비어 있는지 확인: np.isnan() / pd.isnull()
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Python은 게임 및 GUI 개발에서 탁월합니다. 1) 게임 개발은 Pygame을 사용하여 드로잉, 오디오 및 기타 기능을 제공하며 2D 게임을 만드는 데 적합합니다. 2) GUI 개발은 Tkinter 또는 PYQT를 선택할 수 있습니다. Tkinter는 간단하고 사용하기 쉽고 PYQT는 풍부한 기능을 가지고 있으며 전문 개발에 적합합니다.

Python은 데이터 과학, 웹 개발 및 자동화 작업에 적합한 반면 C는 시스템 프로그래밍, 게임 개발 및 임베디드 시스템에 적합합니다. Python은 단순성과 강력한 생태계로 유명하며 C는 고성능 및 기본 제어 기능으로 유명합니다.

2 시간 이내에 Python의 기본 프로그래밍 개념과 기술을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우기, 2. 마스터 제어 흐름 (조건부 명세서 및 루프), 3. 기능의 정의 및 사용을 이해하십시오. 4. 간단한 예제 및 코드 스 니펫을 통해 Python 프로그래밍을 신속하게 시작하십시오.

Python은 웹 개발, 데이터 과학, 기계 학습, 자동화 및 스크립팅 분야에서 널리 사용됩니다. 1) 웹 개발에서 Django 및 Flask 프레임 워크는 개발 프로세스를 단순화합니다. 2) 데이터 과학 및 기계 학습 분야에서 Numpy, Pandas, Scikit-Learn 및 Tensorflow 라이브러리는 강력한 지원을 제공합니다. 3) 자동화 및 스크립팅 측면에서 Python은 자동화 된 테스트 및 시스템 관리와 같은 작업에 적합합니다.

2 시간 이내에 파이썬의 기본 사항을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우십시오. 이를 통해 간단한 파이썬 프로그램 작성을 시작하는 데 도움이됩니다.

10 시간 이내에 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법은 무엇입니까? 컴퓨터 초보자에게 프로그래밍 지식을 가르치는 데 10 시간 밖에 걸리지 않는다면 무엇을 가르치기로 선택 하시겠습니까?

Fiddlerevery Where를 사용할 때 Man-in-the-Middle Reading에 Fiddlereverywhere를 사용할 때 감지되는 방법 ...

Python 3.6에 피클 파일로드 3.6 환경 보고서 오류 : modulenotfounderror : nomodulename ...


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

Dreamweaver Mac版
시각적 웹 개발 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.
