ホームページ バックエンド開発 Python チュートリアル Pythonデータ分析ライブラリpandas_pythonの基本操作方法

Pythonデータ分析ライブラリpandas_pythonの基本操作方法

Apr 08, 2018 am 11:35 AM
pandas python データ分析

以下では、Python データ分析ライブラリ pandas の基本的な操作方法を共有します。非常に参考になるので、皆さんの参考になれば幸いです。一緒に見に来てください

パンダって何?

そうですか?

。 。 。 。明らかにパンダはこの男ほどかわいくない。 。 。 。

pandas の公式 Web サイト自体がどのように定義されているかを見てみましょう:

pandas はオープンソースであり、 Python プログラミング言語用の使いやすいデータ構造とデータ分析ツールです。

明らかに、pandas はPython 用の非常に強力なデータ分析ライブラリです。

学びましょう!

1.pandasシーケンス

import numpy as np 
import pandas as pd 
 
s_data = pd.Series([1,3,5,7,np.NaN,9,11])#pandas中生产序列的函数,类似于我们平时说的数组 
print s_data
ログイン後にコピー

2.pandasデータ構造DataFrame

import numpy as np 
import pandas as pd 
 
#以20170220为基点向后生产时间点 
dates = pd.date_range('20170220',periods=6) 
#DataFrame生成函数,行索引为时间点,列索引为ABCD 
data = pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD')) 
print data 
print 
print data.shape 
print 
print data.values
ログイン後にコピー

3. DataFrame の一部の操作 (1. )

import numpy as np
import pandas as pd
#设计一个字典
d_data = {'A':1,'B':pd.Timestamp('20170220'),'C':range(4),'D':np.arange(4)}
print d_data
#使用字典生成一个DataFrame
df_data = pd.DataFrame(d_data)
print df_data
#DataFrame中每一列的类型
print df_data.dtypes
#打印A列
print df_data.A
#打印B列
print df_data.B
#B列的类型
print type(df_data.B)
ログイン後にコピー

4. DataFrameの一部の操作(2)

import numpy as np 
import pandas as pd 
 
dates = pd.date_range('20170220',periods=6) 
data = pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD')) 
print data 
print 
#输出DataFrame头部数据,默认为前5行 
print data.head() 
#输出输出DataFrame第一行数据 
print data.head(1) 
#输出DataFrame尾部数据,默认为后5行 
print data.tail() 
#输出输出DataFrame最后一行数据 
print data.tail(1) 
#输出行索引 
print data.index 
#输出列索引 
print data.columns 
#输出DataFrame数据值 
print data.values 
#输出DataFrame详细信息 
print data.describe()
ログイン後にコピー

5 .DataFrame に対するいくつかの操作 (3)

import numpy as np 
import pandas as pd 
 
dates = pd.date_range('20170220',periods=6) 
data = pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD')) 
print data 
print 
#转置 
print data.T 
#输出维度信息 
print data.shape 
#转置后的维度信息 
print data.T.shape 
#将列索引排序 
print data.sort_index(axis = 1) 
#将列索引排序,降序排列 
print data.sort_index(axis = 1,ascending=False) 
#将行索引排序,降序排列 
print data.sort_index(axis = 0,ascending=False) 
#按照A列的值进行升序排列 
print data.sort_values(by='A')
ログイン後にコピー

6. DataFrame の一部の操作 (4)

import numpy as np 
import pandas as pd 
 
dates = pd.date_range('20170220',periods=6) 
data = pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD')) 
print data 
#输出A列 
print data.A 
#输出A列 
print data['A'] 
#输出3,4行 
print data[2:4] 
#输出3,4行 
print data['20170222':'20170223'] 
#输出3,4行 
print data.loc['20170222':'20170223'] 
#输出3,4行 
print data.iloc[2:4] 
输出B,C两列 
print data.loc[:,['B','C']]
ログイン後にコピー

7。

りー

8. DataFrameの一部の操作(6)

import numpy as np 
import pandas as pd 
 
dates = pd.date_range('20170220',periods=6) 
data = pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD')) 
print data 
#输出A列中大于0的行 
print data[data.A > 0] 
#输出大于0的数据,小于等于0的用NaN补位 
print data[data > 0] 
#拷贝data 
data2 = data.copy() 
print data2 
tag = ['a'] * 2 + ['b'] * 2 + ['c'] * 2 
#在data2中增加TAG列用tag赋值 
data2['TAG'] = tag 
print data2 
#打印TAG列中为a,c的行 
print data2[data2.TAG.isin(['a','c'])]
ログイン後にコピー

9. DataFrameの一部の操作

りー

10. DataFrame の一部の操作 (8)

import numpy as np 
import pandas as pd 
 
dates = pd.date_range('20170220',periods=6) 
data = pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD')) 
print data 
#将第一行第一列元素赋值为100 
data.iat[0,0] = 100 
print data 
#将A列元素用range(6)赋值 
data.A = range(6) 
print data 
#将B列元素赋值为200 
data.B = 200 
print data 
#将3,4列元素赋值为1000 
data.iloc[:,2:5] = 1000 
print data
ログイン後にコピー

11. DataFrame の一部の操作

12 .DataFrame (10) の一部の操作

import numpy as np 
import pandas as pd 
 
dates = pd.date_range('20170220',periods = 6) 
df = pd.DataFrame(np.random.randn(6,4) , index = dates , columns = list('ABCD')) 
print df 
#重定义索引,并添加E列 
dfl = df.reindex(index = dates[0:4],columns = list(df.columns)+['E']) 
print dfl 
#将E列中的2,3行赋值为2 
dfl.loc[dates[1:3],'E'] = 2 
print dfl 
#去掉存在NaN元素的行 
print dfl.dropna() 
#将NaN元素赋值为5 
print dfl.fillna(5) 
#判断每个元素是否为NaN 
print pd.isnull(dfl) 
#求列平均值 
print dfl.mean() 
#对每列进行累加 
print dfl.cumsum()
ログイン後にコピー

13. DataFrame (11) の一部の操作

import numpy as np 
import pandas as pd 
dates = pd.date_range('20170220',periods = 6) 
df = pd.DataFrame(np.random.randn(6,4) , index = dates , columns = list('ABCD')) 
print df 
dfl = df.reindex(index = dates[0:4],columns = list(df.columns)+['E']) 
print dfl 
#针对行求平均值 
print dfl.mean(axis=1) 
#生成序列并向右平移两位 
s = pd.Series([1,3,5,np.nan,6,8],index = dates).shift(2) 
print s 
#df与s做减法运算 
print df.sub(s,axis = 'index') 
#每列进行累加运算 
print df.apply(np.cumsum) 
#每列的最大值减去最小值 
print df.apply(lambda x: x.max() - x.min())
ログイン後にコピー

14.DataFrameの一部操作 (12)

import numpy as np 
import pandas as pd 
dates = pd.date_range('20170220',periods = 6) 
df = pd.DataFrame(np.random.randn(6,4) , index = dates , columns = list('ABCD')) 
print df 
#定义一个函数 
def _sum(x): 
 print(type(x)) 
 return x.sum() 
#apply函数可以接受一个函数作为参数 
print df.apply(_sum) 
s = pd.Series(np.random.randint(10,20,size = 15)) 
print s 
#统计序列中每个元素出现的次数 
print s.value_counts() 
#返回出现次数最多的元素 
print s.mode()
ログイン後にコピー

15. DataFrame の一部の操作 (13)

import numpy as np 
import pandas as pd 
 
df = pd.DataFrame(np.random.randn(10,4) , columns = list('ABCD')) 
print df 
#合并函数 
dfl = pd.concat([df.iloc[:3],df.iloc[3:7],df.iloc[7:]]) 
print dfl 
#判断两个DataFrame中元素是否相等 
print df == dfl
ログイン後にコピー

16. DataFrame の一部の操作 (14)

import numpy as np
import pandas as pd

df = pd.DataFrame(np.random.randn(10,4) , columns = list('ABCD'))
print df
left = pd.DataFrame({'key':['foo','foo'],'lval':[1,2]})
right = pd.DataFrame({'key':['foo','foo'],'rval':[4,5]})
print left
print right
#通过key来合并数据
print pd.merge(left,right,on='key')
s = pd.Series(np.random.randint(1,5,size = 4),index = list('ABCD'))
print s
#通过序列添加一行
print df.append(s,ignore_index = True)
ログイン後にコピー

17. DataFrameの一部の操作(15)

import numpy as np 
import pandas as pd 
df = pd.DataFrame({'A': ['foo','bar','foo','bar', 
       'foo','bar','foo','bar'], 
     'B': ['one','one','two','three', 
       'two','two','one','three'], 
     'C': np.random.randn(8), 
     'D': np.random.randn(8)}) 
print df 
print 
#根据A列的索引求和 
print df.groupby('A').sum() 
print 
#先根据A列的索引,在根据B列的索引求和 
print df.groupby(['A','B']).sum() 
print 
#先根据B列的索引,在根据A列的索引求和 
print df.groupby(['B','A']).sum()
ログイン後にコピー

18.时间序列(1)

import pandas as pd 
import numpy as np 
 
#创建一个以20170220为基准的以秒为单位的向前推进600个的时间序列 
rng = pd.date_range('20170220', periods=600, freq='s') 
print rng 
#以时间序列为索引的序列 
print pd.Series(np.random.randint(0, 500, len(rng)), index=rng)
ログイン後にコピー

19.时间序列(2)

import pandas as pd 
import numpy as np 
 
rng = pd.date_range('20170220', periods=600, freq='s') 
ts = pd.Series(np.random.randint(0, 500, len(rng)), index=rng) 
#重采样,以2分钟为单位进行加和采样 
print ts.resample('2Min', how='sum') 
#列出2011年1季度到2017年1季度 
rng1 = pd.period_range('2011Q1','2017Q1',freq='Q') 
print rng1 
#转换成时间戳形式 
print rng1.to_timestamp() 
#时间加减法 
print pd.Timestamp('20170220') - pd.Timestamp('20170112') 
print pd.Timestamp('20170220') + pd.Timedelta(days=12)
ログイン後にコピー

20.数据类别

import pandas as pd 
import numpy as np 
 
df = pd.DataFrame({"id":[1,2,3,4,5,6], "raw_grade":['a', 'b', 'b', 'a', 'a', 'e']}) 
print df 
#添加类别数据,以raw_grade的值为类别基础 
df["grade"] = df["raw_grade"].astype("category") 
print df 
#打印类别 
print df["grade"].cat.categories 
#更改类别 
df["grade"].cat.categories = ["very good", "good", "very bad"] 
print df 
#根据grade的值排序 
print df.sort_values(by='grade', ascending=True) 
#根据grade排序显示数量 
print df.groupby("grade").size()
ログイン後にコピー

21.数据可视化

import pandas as pd 
import numpy as np 
import matplotlib.pyplot as plt 
 
ts = pd.Series(np.random.randn(1000), index=pd.date_range('20170220', periods=1000)) 
ts = ts.cumsum() 
print ts 
ts.plot() 
plt.show()
ログイン後にコピー

22.数据读写

import pandas as pd 
import numpy as np 
 
df = pd.DataFrame(np.random.randn(10, 4), columns=list('ABCD')) 
#数据保存,相对路径 
df.to_csv('data.csv') 
#数据读取 
print pd.read_csv('data.csv', index_col=0)
ログイン後にコピー

数据被保存到这个文件中:

打开看看:

相关推荐:

python解决pandas处理缺失值为空字符串的问题_python

实例讲解Python如何利用pandas查询数据

以上がPythonデータ分析ライブラリpandas_pythonの基本操作方法の詳細内容です。詳細については、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)

PSフェザーリングは、遷移の柔らかさをどのように制御しますか? PSフェザーリングは、遷移の柔らかさをどのように制御しますか? Apr 06, 2025 pm 07:33 PM

羽毛の鍵は、その漸進的な性質を理解することです。 PS自体は、勾配曲線を直接制御するオプションを提供しませんが、複数の羽毛、マッチングマスク、および細かい選択により、半径と勾配の柔らかさを柔軟に調整して、自然な遷移効果を実現できます。

mysqlは支払う必要がありますか mysqlは支払う必要がありますか Apr 08, 2025 pm 05:36 PM

MySQLには、無料のコミュニティバージョンと有料エンタープライズバージョンがあります。コミュニティバージョンは無料で使用および変更できますが、サポートは制限されており、安定性要件が低く、技術的な能力が強いアプリケーションに適しています。 Enterprise Editionは、安定した信頼性の高い高性能データベースを必要とするアプリケーションに対する包括的な商業サポートを提供し、サポートの支払いを喜んでいます。バージョンを選択する際に考慮される要因には、アプリケーションの重要性、予算編成、技術スキルが含まれます。完璧なオプションはなく、最も適切なオプションのみであり、特定の状況に応じて慎重に選択する必要があります。

インストール後にMySQLの使用方法 インストール後にMySQLの使用方法 Apr 08, 2025 am 11:48 AM

この記事では、MySQLデータベースの操作を紹介します。まず、MySQLWorkBenchやコマンドラインクライアントなど、MySQLクライアントをインストールする必要があります。 1. mysql-uroot-pコマンドを使用してサーバーに接続し、ルートアカウントパスワードでログインします。 2。CreatedAtaBaseを使用してデータベースを作成し、データベースを選択します。 3. createTableを使用してテーブルを作成し、フィールドとデータ型を定義します。 4. INSERTINTOを使用してデータを挿入し、データをクエリし、更新することでデータを更新し、削除してデータを削除します。これらの手順を習得することによってのみ、一般的な問題に対処することを学び、データベースのパフォーマンスを最適化することでMySQLを効率的に使用できます。

PSフェザーリングをセットアップする方法は? PSフェザーリングをセットアップする方法は? Apr 06, 2025 pm 07:36 PM

PSフェザーリングは、イメージエッジブラー効果であり、エッジエリアのピクセルの加重平均によって達成されます。羽の半径を設定すると、ぼやけの程度を制御でき、値が大きいほどぼやけます。半径の柔軟な調整は、画像とニーズに応じて効果を最適化できます。たとえば、キャラクターの写真を処理する際に詳細を維持するためにより小さな半径を使用し、より大きな半径を使用してアートを処理するときにかすんだ感覚を作成します。ただし、半径が大きすぎるとエッジの詳細を簡単に失う可能性があり、効果が小さすぎると明らかになりません。羽毛効果は画像解像度の影響を受け、画像の理解と効果の把握に従って調整する必要があります。

MySQLダウンロードファイルが破損しており、インストールできません。修復ソリューション MySQLダウンロードファイルが破損しており、インストールできません。修復ソリューション Apr 08, 2025 am 11:21 AM

mysqlダウンロードファイルは破損していますが、どうすればよいですか?残念ながら、MySQLをダウンロードすると、ファイルの破損に遭遇できます。最近は本当に簡単ではありません!この記事では、誰もが迂回を避けることができるように、この問題を解決する方法について説明します。それを読んだ後、損傷したMySQLインストールパッケージを修復するだけでなく、将来の行き詰まりを避けるために、ダウンロードとインストールプロセスをより深く理解することもできます。最初に、ファイルのダウンロードが破損した理由について話しましょう。これには多くの理由があります。ネットワークの問題は犯人です。ダウンロードプロセスの中断とネットワーク内の不安定性は、ファイル腐敗につながる可能性があります。ダウンロードソース自体にも問題があります。サーバーファイル自体が壊れており、もちろんダウンロードすると壊れています。さらに、いくつかのウイルス対策ソフトウェアの過度の「情熱的な」スキャンもファイルの破損を引き起こす可能性があります。診断問題:ファイルが本当に破損しているかどうかを判断します

MySQLはダウンロード後にインストールできません MySQLはダウンロード後にインストールできません Apr 08, 2025 am 11:24 AM

MySQLのインストール障害の主な理由は次のとおりです。1。許可の問題、管理者として実行するか、SUDOコマンドを使用する必要があります。 2。依存関係が欠落しており、関連する開発パッケージをインストールする必要があります。 3.ポート競合では、ポート3306を占めるプログラムを閉じるか、構成ファイルを変更する必要があります。 4.インストールパッケージが破損しているため、整合性をダウンロードして検証する必要があります。 5.環境変数は誤って構成されており、環境変数はオペレーティングシステムに従って正しく構成する必要があります。これらの問題を解決し、各ステップを慎重に確認して、MySQLを正常にインストールします。

MySQLインストール後にデータベースのパフォーマンスを最適化する方法 MySQLインストール後にデータベースのパフォーマンスを最適化する方法 Apr 08, 2025 am 11:36 AM

MySQLパフォーマンスの最適化は、インストール構成、インデックス作成、クエリの最適化、監視、チューニングの3つの側面から開始する必要があります。 1。インストール後、INNODB_BUFFER_POOL_SIZEパラメーターやclose query_cache_sizeなど、サーバーの構成に従ってmy.cnfファイルを調整する必要があります。 2。過度のインデックスを回避するための適切なインデックスを作成し、説明コマンドを使用して実行計画を分析するなど、クエリステートメントを最適化します。 3. MySQL独自の監視ツール(ShowProcessList、ShowStatus)を使用して、データベースの健康を監視し、定期的にデータベースをバックアップして整理します。これらの手順を継続的に最適化することによってのみ、MySQLデータベースのパフォーマンスを改善できます。

MySQLインストール後に開始できないサービスのソリューション MySQLインストール後に開始できないサービスのソリューション Apr 08, 2025 am 11:18 AM

MySQLは開始を拒否しましたか?パニックにならないでください、チェックしてみましょう!多くの友人は、MySQLのインストール後にサービスを開始できないことを発見し、彼らはとても不安でした!心配しないでください、この記事はあなたがそれを落ち着いて対処し、その背後にある首謀者を見つけるためにあなたを連れて行きます!それを読んだ後、あなたはこの問題を解決するだけでなく、MySQLサービスの理解と問題のトラブルシューティングのためのあなたのアイデアを改善し、より強力なデータベース管理者になることができます! MySQLサービスは開始に失敗し、単純な構成エラーから複雑なシステムの問題に至るまで、多くの理由があります。最も一般的な側面から始めましょう。基本知識:サービススタートアッププロセスMYSQLサービススタートアップの簡単な説明。簡単に言えば、オペレーティングシステムはMySQL関連のファイルをロードし、MySQLデーモンを起動します。これには構成が含まれます

See all articles