Python
 Computer >> コンピューター >  >> プログラミング >> Python

正規表現とデータ型を使用して複数のDataFrame列を選択する方法


DataFrameは、スプレッドシートまたは行と列を持つデータベースに保持されているデータセットと比較される場合があります。 DataFrameは2Dオブジェクトです。

わかりました。1Dおよび2Dの用語と混同していますか?

1D(シリーズ)と2D(データフレーム)の主な違いは、単一のデータポイントに到達するために情報を収集する必要があるポイントの数です。シリーズの例を取り上げ、値を抽出したい場合、必要な参照ポイントは1つだけです。つまり、行インデックスです。

テーブル(DataFrame)と比較すると、データポイントに到達するには、1つの参照ポイントでは不十分であり、行の値と列の値の共通部分が必要です。

以下のスニペットは、csvファイルからPandasDataFrameを作成する方法を示しています。

.read_csv()メソッドは、デフォルトでDataFrameを作成します。映画を検索して、kaggle.comから映画データセットをダウンロードできます。

"""Script : Create a Pandas DataFrame from a csv file."""
import pandas as pd
movies_dataset pd read_csv "https://raw.githubusercontent.com/sasankac/TestDataSet/master/movies_data.csv")
# 1 print the type of object
type(movies_dataset)
# 2 print the top 5 records in a tabular format
movies_dataset head(5)



予算
id
original_language
original_title
人気
release_date
収益
ランタイム
ステータス
タイトル
vote_average
vote_count
0
237000000
19995
en
アバター
150.437577
2009年10月12日
2787965087
162.0
リリース済み
アバター
7.2
11800
1
300000000
285
en
パイレーツオブカリビアン:世界の終わりに
139.082615
2007年5月19日
961000000
169.0
リリース済み
パイレーツオブカリビアン:世界の終わりに
6.9
4500
2
245000000
206647
en
スペクター
107.376788
2015年10月26日
880674609
148.0
リリース済み
スペクター
6.3
4466
3
250000000
49026
en
ダークナイトライジング
112.312950
2012年7月16日
1084939099
165.0
リリース済み
ダークナイトライジング
7.6
9106
4
260000000
49529
en
ジョン・カーター
43.926995
2012年7月3日
284139100
132.0
リリース済み
ジョン・カーター
6.1
2124

2.単一のDataFrame列を選択します。列名を文字列またはリストとしてインデックス演算子に渡すと、列の値がSeriesまたはDataFrameとして返されます。

列名の文字列を渡すと、出力としてSeriesが取得されますが、列名が1つだけのリストを渡すとDataFrameが返されます。これを例で見ていきます。

# select the data as series movies_dataset["title"]
として選択します


0 Avatar
1 Pirates of the Caribbean: At World's End
2 Spectre
3 The Dark Knight Rises
4 John Carter
...
4798 El Mariachi
4799 Newlyweds
4800 Signed, Sealed, Delivered
4801 Shanghai Calling
4802 My Date with Drew
Name: title, Length: 4803, dtype: object


# select the data as DataFrame movies_dataset[["title"]]
として選択します



タイトル
0
アバター
1
パイレーツオブカリビアン:世界の終わりに
2
スペクター
3
ダークナイトライジング
4
ジョン・カーター
..。
..。
4798
エルマリアッチ
4799
新婚夫婦
4800
署名、封印、配達
4801
上海コーリング
4802
ドリューとの私のデート

3.複数のDataFrame列を選択します。

# Multiple DataFrame columns movies_dataset[["title""runtime","vote_average","vote_count"]]



タイトル
ランタイム
vote_average
vote_count
0
アバター
162.0
7.2
11800
1
パイレーツオブカリビアン:世界の終わりに
169.0
6.9
4500
2
スペクター
148.0
6.3
4466
3
ダークナイトライジング
165.0
7.6
9106
4
ジョン・カーター
132.0
6.1
2124
..。
..。
..。
..。
..。
4798
エルマリアッチ
81.0
6.6
238
4799
新婚夫婦
85.0
5.9
5
4800
署名、封印、配達
120.0
7.0
6
4801
上海コーリング
98.0
5.7
7
4802
ドリューとの私のデート
90.0
6.3
16

コードの可読性の問題を回避するために、列の名前をリストとして保持するための変数を定義し、コード内で複数の列名を指定する代わりに列名を使用することを常にお勧めします。

columns=["title","runtime","vote_average","vote_count"]movies_dataset[columns]



タイトル
ランタイム
vote_average
vote_count
0
アバター
162.0
7.2
11800
1
パイレーツオブカリビアン:世界の終わりに
169.0
6.9
4500
2
スペクター
148.0
6.3
4466
3
ダークナイトライジング
165.0
7.6
9106
4
ジョン・カーター
132.0
6.1
2124
..。
..。
..。
..。
..。
4798
エルマリアッチ
81.0
6.6
238
4799
新婚夫婦
85.0
5.9
5
4800
署名、封印、配達
120.0
7.0
6
4801
上海コーリング
98.0
5.7
7
4802
ドリューとの私のデート
90.0
6.3
16

4.列名によるDataFrame列。

.filter()メソッド

この方法は、文字列を使用して列を検索および選択するのに非常に便利です。これは、SQLの同様の%%パラメータとほぼ同じように機能します。 .filter()メソッドは、実際のデータ値ではなく、列名のみを検査することによって列を選択することを忘れないでください。

.filter()メソッドは、選択操作に使用できる3つのパラメーターをサポートします。

。お気に入り
.regex
.items

like parameter takes a string and attempts to find the column names that contain this string somewhere in the column name.


# Select the column that have a column name like "title" movies_dataset.filter(like="title").head(5)



original_title
タイトル
0
アバター
アバター
1
パイレーツオブカリビアン:世界の終わりに
パイレーツオブカリビアン:世界の終わりに
2
スペクター
スペクター
3
ダークナイトライジング
ダークナイトライジング
4
ジョン・カーター
ジョン・カーター

.regex –正規表現を使用して列名を選択するより柔軟な方法

# Select the columns that end with "t"
movies_dataset.filter(regex=t).head()



予算
vote_count
0
237000000
11800
1
300000000
4500
2
245000000
4466
3
250000000
9106
4
260000000
2124

.items – KeyErrorが発生しないことを除いて、列名を文字列またはリストとしてインデックス演算子に渡す重複

データ型別のDataFrame列。

.select_dtypesメソッドは、特定のデータ型のみをフィルタリングして使用する場合に、列のデータ型で機能します。

繰り返しになりますが、.select_dtypesメソッドは、包含または除外パラメーターで複数のデータ型(リストによる)または単一のデータ型(文字列として)を受け入れ、指定されたデータ型のみの列を持つDataFrameを返します。

.includeパラメーターには、指定されたデータ型の列が含まれ、.excludeは、指定されたデータ型の列を無視します。

まず、データ型とそれらのデータ型の列数を見てみましょう

movies_dataset=pd.read_csv("https://raw.githubusercontent.com/sasankac/TestDataSet/master/movies_data.csv"
movies_dataset.dtypes.value_counts()


object 5
int64 4
float64 3
dtype: int64


a)pandasDataFramesから整数データ型をフィルタリングします。

movies_dataset select_dtypes(include="int")head(3)


2
1
0


b)。 pandasDataFramesから整数と浮動小数点のデータ型を選択します。

以下に示すリストとして、複数のデータ型を指定できます。

movies_dataset select_dtypes(include=["int64","float"]).head(3)



予算
id
人気
収益
ランタイム
vote_average
vote_count
0
237000000
19995
150.437577
2787965087
162.0
7.2
11800
1
300000000
285
139.082615
961000000
169.0
6.9
4500
2
245000000
206647
107.376788
880674609
148.0
6.3
4466

c)ええと、すべての数値データ型が必要な場合は、数値を指定するだけです

movies_dataset select_dtypes(include=["number"]).head(3)



予算
id
人気
収益
ランタイム
vote_average
vote_count
0
237000000
19995
150.437577
2787965087
162.0
7.2
11800
1
300000000
285
139.082615
961000000
169.0
6.9
4500
2
245000000
206647
107.376788
880674609
148.0
6.3
4466

d)。 pandasDataFramesから特定のデータ型を除外します。


movies_dataset select_dtypes(exclude=["object"]).head(3)



予算
id
人気
収益
ランタイム
vote_average
vote_count
0
237000000
19995
150.437577
2787965087
162.0
7.2
11800
1
300000000
285
139.082615
961000000
169.0
6.9
4500
2
245000000
206647
107.376788
880674609
148.0
6.3
4466


:-処理する文字列データ型がありません。パンダはそれらをオブジェクトに変換します。したがって、「TypeError:データ型「文字列」が理解できません」という例外が発生した場合は、代わりに文字列をオブジェクトに置き換えてください。


  1. MicrosoftAccessで列をフリーズおよびフリーズ解除する方法

    Microsoft Access 、フリーズと呼ばれる機能があります これにより、ユーザーは別の領域にスクロールしている間、データシートの領域を表示したままにすることができます。フリーズ機能を使用して、テーブル、クエリ、フォーム、ビュー、またはデータシートのストアドプロシージャの1つ以上のフィールドをフリーズできます。フリーズしたフィールドは、データシートの左側の位置に移動します。 Accessで列をフリーズおよびフリーズ解除する方法 以下の手順に従って、MicrosoftAccessで列をフリーズおよびフリーズ解除します。 MicrosoftAccessで列をフリーズする方法 Micr

  2. PythonでTkinterを使用してディレクトリを選択し、場所を保存するにはどうすればよいですか?

    私たちはダイアログボックスに精通しており、多くの種類のアプリケーションでダイアログボックスを操作しました。このようなタイプのダイアログは、ユーザーの操作が最も必要なアプリケーションを作成する場合に役立ちます。ダイアログボックスを使用して、ユーザーにさまざまな種類のファイルを選択してから、ファイルの読み取り、ファイルへの書き込みなどの特定の操作を実行するように求めることができます。ダイアログボックスは、ファイルダイアログ Pythonのモジュール。 例 この例では、ローカルディレクトリからファイルを選択するようにユーザーに要求し、ラベルを使用してディレクトリの場所を表示するアプリケーションを作