目次
1. xlsx テーブルの読み取り: pd.read_excel()
2 を読み取るときにデータの n 行目をスキップします。テーブルのデータ サイズを取得します:shape
3. データのインデックス付け方法: [ ] / loc[] / iloc[]
次のコードを理解しましょう
#sheet['name2'].replace(2, 100, inplace=True)
列を追加するには、角括弧 [追加する名前] を直接使用して追加します。
a) del(sheet['name3'])
ホームページ バックエンド開発 Python チュートリアル Python の Pandas ライブラリを使用して Excel データを処理するにはどうすればよいですか?

Python の Pandas ライブラリを使用して Excel データを処理するにはどうすればよいですか?

May 08, 2023 pm 09:49 PM
excel python pandas

1. xlsx テーブルの読み取り: pd.read_excel()

元の内容は次のとおりです:

Python の Pandas ライブラリを使用して 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() を使用して文字列に変換し、

'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. 要素の値を変更します: 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()

1. データをパンダ形式で保存します。 .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 ファイルとして保存します。 Python の Pandas ライブラリを使用して Excel データを処理するにはどうすればよいですか?

たとえば、元のテーブルの 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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHPおよびPython:コードの例と比較 PHPおよびPython:コードの例と比較 Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

Python vs. JavaScript:コミュニティ、ライブラリ、リソース Python vs. JavaScript:コミュニティ、ライブラリ、リソース Apr 15, 2025 am 12:16 AM

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

Dockerの原則の詳細な説明 Dockerの原則の詳細な説明 Apr 14, 2025 pm 11:57 PM

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

Visual StudioコードはPythonで使用できますか Visual StudioコードはPythonで使用できますか Apr 15, 2025 pm 08:18 PM

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

ターミナルVSCODEでプログラムを実行する方法 ターミナルVSCODEでプログラムを実行する方法 Apr 15, 2025 pm 06:42 PM

VSコードでは、次の手順を通じて端末でプログラムを実行できます。コードを準備し、統合端子を開き、コードディレクトリが端末作業ディレクトリと一致していることを確認します。プログラミング言語(pythonのpython your_file_name.pyなど)に従って実行コマンドを選択して、それが正常に実行されるかどうかを確認し、エラーを解決します。デバッガーを使用して、デバッグ効率を向上させます。

VSCODE拡張機能は悪意がありますか? VSCODE拡張機能は悪意がありますか? Apr 15, 2025 pm 07:57 PM

VSコード拡張機能は、悪意のあるコードの隠れ、脆弱性の活用、合法的な拡張機能としての自慰行為など、悪意のあるリスクを引き起こします。悪意のある拡張機能を識別する方法には、パブリッシャーのチェック、コメントの読み取り、コードのチェック、およびインストールに注意してください。セキュリティ対策には、セキュリティ認識、良好な習慣、定期的な更新、ウイルス対策ソフトウェアも含まれます。

Windows 8でコードを実行できます Windows 8でコードを実行できます Apr 15, 2025 pm 07:24 PM

VSコードはWindows 8で実行できますが、エクスペリエンスは大きくない場合があります。まず、システムが最新のパッチに更新されていることを確認してから、システムアーキテクチャに一致するVSコードインストールパッケージをダウンロードして、プロンプトとしてインストールします。インストール後、一部の拡張機能はWindows 8と互換性があり、代替拡張機能を探すか、仮想マシンで新しいWindowsシステムを使用する必要があることに注意してください。必要な拡張機能をインストールして、適切に動作するかどうかを確認します。 Windows 8ではVSコードは実行可能ですが、開発エクスペリエンスとセキュリティを向上させるために、新しいWindowsシステムにアップグレードすることをお勧めします。

Python:自動化、スクリプト、およびタスク管理 Python:自動化、スクリプト、およびタスク管理 Apr 16, 2025 am 12:14 AM

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

See all articles