Datawhaleチーム-パンダ(上)の基本(自習)

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()

運動:

 

おすすめ

転載: blog.csdn.net/qq_28409193/article/details/106919273