Pandasは、Pythonのコアデータ分析サポートライブラリです。高速で柔軟性があり、明確なデータセクションを提供し、リレーショナルデータとラベル付きデータを簡単かつ直感的に処理することを目的としています。Pandasの目標は、Pythonデータ分析時間と実際の戦闘に必要な高度なツールと呼ばれることです。その長期的な目標は、あらゆる言語をサポートできる最も強力で柔軟なオープンソースデータと呼ばれることです。
Pandasは、次のタイプのデータの処理に適しています。
- SQLまたはExcelテーブルと同様に、異種列を持つテーブルデータ。
- 順序付けられた無秩序な(固定されていない頻度)時系列データ
- 同種または異種のデータを含む、行と列のラベルが付いた行列データ
- その他の形式の観測および統計データセットでは、データをPandasデータ構造に転送するときに事前にマークを付ける必要はありません。
パンダの利点:
- NaNとして表される、浮動小数点データと非浮動小数点データの欠落データを処理します。
- 可変サイズ:DataFrameなどの多次元オブジェクトの列を挿入または削除します。
- 自動および明示的なデータアライメント:オブジェクトをラベルのセットと明示的にアライメントするか、ラベルを無視して、SeriesとDataFrameが計算されるときにデータと自動的にアライメントします。
- 強力で柔軟なグループ化機能:分割アプリケーションで結合されたデータセット、データの集約と変換。
- PythonおよびNumpyデータ構造の不規則で異なるインデックス付きデータをDataFrameオブジェクトに簡単に変換します。
- スマートタグに基づいて、スライス、ファンシーインデックス、大規模なデータセットのサブセット分解などの操作を実行します。
- データセットを直感的にマージして結合します。
- 柔軟な形状変更とピボットデータセット。
- 軸は構造化ラベルをサポートします。1つのスケールが複数のラベルをサポートします。
- 成熟したIOツール:テキストファイル(csv)、Excelファイル、データベースなどからデータを読み取り、超高速HDF5形式を使用してデータを保存およびロードします。
- 時系列:日付範囲の生成、頻度変換、移動ウィンドウの統計、移動ウィンドウの線形回帰、日付シフトなどの時系列関数をサポートします。
1.ファイルの読み取りと書き込み
1.読み取りと書き込み
一般的なファイル形式は、csv、txt、xls、xlsx形式です。
#读取csv
df = pd.read_csv('data/table.csv')
#读取txt
df_txt = pd.read_table('data/table.txt') #可设置sep分隔符参数
#读取xls或xlsx
df_excel = pd.read_excel('data/table.xlsx')
#写入csv
df.to_csv('data/table.csv')
#写入xls或xlsx
df_excel.to_excel('data/table.xlsx')
第二に、基本的なデータ構造
Pandasには2つのデータ型があります。Seriesは、整数、浮動小数点数、文字列、Pythonオブジェクト、およびその他の種類のデータを格納できるラベル付きの1次元配列です。軸ラベルはまとめてインデックスと呼ばれます。データは、複数のタイプの列で構成される2次元のラベルデータ構造です。1次元および多次元のデータ入力をサポートし、オプションでインデックスと列のパラメータを渡すことができます。
1.シリーズ
シリーズの場合、一般的に使用される属性は、値、インデックス、名前、およびdtypeです。
s = pd.Series(np.random.randn(5),index=['a','b','c','d','e'],name='这是一个Series',dtype='float64')
print(s.name)
print(s.values)
print(s.index)
print(s.dtype)
2.DataFrame
DataFrameを作成します
df = pd.DataFrame({'col1':list('abcde'),'col2':range(5,10),'col3':[1.3,2.5,3.6,4.6,5.8]},index=list('一二三四五'))
#从DataFrame取出一列为Series
print(df['col1'])
print(type(df))
print(type(df['col1']))
#修改行或列名
df.rename(index={'一':'one'},columns={'col1':'new_col1'})
#DataFrame的属性和方法
print(df.index)
print(df.columns)
print(df.values)
print(df.shape)
print(df.mean())
インデックスアライメント機能:
df1 = pd.DataFrame({'A':[1,2,3]},index=[1,2,3])
df2 = pd.DataFrame({'A':[1,2,3]},index=[3,1,2])
df1-df2 #由于索引对齐,因此结果不是0
列の削除と追加(ドロップまたはポップ、削除と直接増加、割り当て)
df = pd.DataFrame({'col1':list('abcde'),'col2':range(5,10),'col3':[1.3,2.5,3.6,4.6,5.8]},index=list('一二三四五'))
#删除
#drop
df.drop(index='五',columns='col1')
#del
df['col1']=[1,2,3,4,5]
del df['col1']
#pop
df['col1']=[1,2,3,4,5]
df.pop('col1')
#直接增加列(以索引为准)
df1['B']=list('abc')
#用assign,不会对原DataFrame修改
df1.assign(C=pd.Series(list('def')))
3つの一般的に使用される基本機能
1、頭尾
headは、デフォルトで表示されるdfの最初の5行であり、10行目はhead(10)を介して表示できます。
tailは、デフォルトで表示されるdfの最後の5行であり、10行目はtail(10)を介して表示できます。
2.ユニークでユニーク
nuniqueは、一意の値がいくつあるかを示します
uniqueは、すべての一意の値を表示します
3.count和value_counts
countは、欠落していない値要素の数を返します
value_countsは、各要素の数を返します
4.和情報を説明する
数値データの各統計のデフォルト統計を記述し、自分で分位数を選択できます
info関数は、それらの列、欠落していない値の数、および各列のタイプを返します。
5.idxmaxおよびnlargest
idxmax関数は、最大値のインデックスを返すいくつかの場合に特に適しており、機能的に類似idxmin ¶
nlargest関数は最初のいくつかの大きな要素の値を返し、nsmallest関数は同様です
6.クリップして交換します
クリップは、特定の値を超えるまたは下回る数値の切り捨てです。
7.関数を適用する
df['Math'].apply(lambda x:str(x)+'!').head() #可以使用lambda表达式,也可以使用函数
df.apply(lambda x:x.apply(lambda x:str(x)+'!')).head() #这是一个稍显复杂的例子,有利于理解apply的功能
第四に、ソート
1.インデックスの並べ替え
df.set_index('Math').head() #set_index函数可以设置索引
df.set_index('Math').sort_index().head() #可以设置ascending参数,默认为升序,True
2.値の並べ替え
#单值排序
df.sort_values(by='Class').head()
df.sort_values(by=['Address','Height']).head()
運動: