正規表現とデータ型を使用して複数の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:データ型「文字列」が理解できません」という例外が発生した場合は、代わりに文字列をオブジェクトに置き換えてください。
-
MicrosoftAccessで列をフリーズおよびフリーズ解除する方法
Microsoft Access 、フリーズと呼ばれる機能があります これにより、ユーザーは別の領域にスクロールしている間、データシートの領域を表示したままにすることができます。フリーズ機能を使用して、テーブル、クエリ、フォーム、ビュー、またはデータシートのストアドプロシージャの1つ以上のフィールドをフリーズできます。フリーズしたフィールドは、データシートの左側の位置に移動します。 Accessで列をフリーズおよびフリーズ解除する方法 以下の手順に従って、MicrosoftAccessで列をフリーズおよびフリーズ解除します。 MicrosoftAccessで列をフリーズする方法 Micr
-
PythonでTkinterを使用してディレクトリを選択し、場所を保存するにはどうすればよいですか?
私たちはダイアログボックスに精通しており、多くの種類のアプリケーションでダイアログボックスを操作しました。このようなタイプのダイアログは、ユーザーの操作が最も必要なアプリケーションを作成する場合に役立ちます。ダイアログボックスを使用して、ユーザーにさまざまな種類のファイルを選択してから、ファイルの読み取り、ファイルへの書き込みなどの特定の操作を実行するように求めることができます。ダイアログボックスは、ファイルダイアログ Pythonのモジュール。 例 この例では、ローカルディレクトリからファイルを選択するようにユーザーに要求し、ラベルを使用してディレクトリの場所を表示するアプリケーションを作