1. xlsx テーブルの読み取り: pd.read_excel()
元の内容は次のとおりです:
a) n 番目のテーブルを読み取ります。シート (サブテーブル。左下のサブテーブルを表示または追加または削除できます) data
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 関数が デフォルトでテーブルの最初の行を列インデックス名 として設定するためです。さらに、行インデックス名については、デフォルトで 2 行目から番号が付けられます (デフォルトの最初の行は列インデックス名であり、デフォルトの最初の行はデータではないため)。特に指定しない場合、番号付けは自動的に 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 番目の列を行インデックスとして指定することもできますname 、次のように:
# 指定第一列为行索引 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)
# 跳过第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 を読み取るときにデータの n 行目をスキップします。テーブルのデータ サイズを取得します: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 メソッド、index by整数
sheet.iloc[ ] インデックスを使用します。角括弧は行と列の整数の位置番号です (行インデックスとして列を除外した後、0 から始まります)列インデックスとしての行 (シリアル番号)。
a)sheet.iloc[1, 2]: 行 2、列 3 データを抽出します。 1 つ目は行インデックス、2 つ目は列インデックスです。
b)sheet.iloc[0: 2]: 最初の 2 行 data## を抽出します。
#c)sheet.iloc[0:2, 0:2]: シャーディングを通じて 最初の 2 行 の 最初の 2 列 データを抽出します。
# 指定第一列数据为行索引 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 の整数インデックスが行と列の名前インデックスに置き換えられる点が異なります。このインデックス作成方法は、より直感的に使用できます。
注: iloc[1: 2] には 2 が含まれませんが、loc['row1': 'row2'] には 2 が含まれます。 「行2」。
# 指定第一列数据为行索引 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. isnan()
または ## の を使用します。 #numpy ライブラリ pandas ライブラリの isnull() メソッドは、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() を使用して文字列に変換し、
と等しいかどうかを判断します。 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. 要素の値を変更します: replace()
#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]
: name_add という名前の列を値 [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. データの削除: 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 行を削除します。列が削除されると、対応する axis=1 になります。 inplace パラメータが True の場合、パラメータは返されず、元のデータから直接削除されます。
inplace パラメータが False (デフォルト) の場合、元のデータは削除されませんData
sheet.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. Excel ファイルに保存します: to_excel()
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 中国語 Web サイトの他の関連記事を参照してください。

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

Dreamweaver Mac版
ビジュアル Web 開発ツール

WebStorm Mac版
便利なJavaScript開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。
