第 3 章 Python 機械学習シリーズとデータフレームの作成、インデックス作成、スライス、データ クリーニング、データ分析などの概要
第 1 章 Python 機械学習を始めるための Pandas ライブラリの使用
第 2 章 Python 機械学習を始めるための NumPy ライブラリの使用
第 3 章 Python 機械学習シリーズとデータフレームの作成、インデックス作成、スライス、データ クリーニング、データ分析などの概要
第 4 章 Python 機械学習を始めるためのデータ視覚化
第 5 章 Python 機械学習を始めるための機械学習アルゴリズム
第 6 章 Python 機械学習を始めるための実践的なプロジェクト
1.シリーズの作成
1. シリーズの作成
シリーズは、次の方法で作成できる 1 次元配列です。
リストからシリーズを作成
pd.Series() 関数を使用して Series オブジェクトを作成し、index パラメーターを指定してインデックスをカスタマイズし、dtype パラメーターを指定してデータ型を指定します。例えば:
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'], dtype=float)
print(s)
出力結果:
a 1.0
b 2.0
c 3.0
d 4.0
e 5.0
dtype: float64
Python 組み込み関数 list() を使用して他のデータ型をリストに変換したり、Python 組み込み関数 range() を使用して特定の範囲内の整数のシーケンスを生成したり、NumPy ライブラリの関数を使用して特定の範囲内の乱数のシーケンスを取得し、Python 組み込み関数 zip() を使用して、複数のリストをタプルのリストに結合します。
辞書からシリーズを作成する
pd.Series() 関数を使用して Series オブジェクトを作成します。辞書のキーは Series のインデックスとして使用され、辞書の値は Series のデータとして使用されます。dtype を指定できます。データ型を指定するパラメータ。例えば:
d = {
'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
s = pd.Series(d, dtype=float)
print(s)
出力結果:
a 1.0
b 2.0
c 3.0
d 4.0
e 5.0
dtype: float64
次に、DataFrame の作成
DataFrame は 2 次元のテーブルであり、以下の方法で作成できます。
WX サーチ公式アカウント:リソース課金バー
0R スキャンコード 注意
因为我在学习过程中经常要找资料,而且很多要付费,所以干了个免费的资源分享平台。不要想太多,真的无偿,关注回复想要的资料即可
2023年に人気のIT学習教材、各種プラットフォームの各種チュートリアル、ソースコードを無料で共有
リストからデータフレームを作成
pd.DataFrame() 関数を使用して DataFrame オブジェクトを作成します。columns パラメーターを指定して列名をカスタマイズし、index パラメーターを指定してインデックスをカスタマイズできます。例えば:
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'], 'age': [25, 30, 35, 40], 'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data, columns=['name', 'age', 'gender'], index=['a', 'b', 'c', 'd'])
print(df)
出力結果:
a Alice 25 F
b Bob 30 M
c Charlie 35 M
d David 40 M
他のデータ型は、Python 組み込み関数 list() を使用してリストに変換でき、Python 組み込み関数 zip() を使用して複数のリストをタプルのリストに結合できます。
辞書からDataFrameを作成
pd.DataFrame() 関数を使用して DataFrame オブジェクトを作成します。ディクショナリのキーは DataFrame の列名として使用され、ディクショナリの値は DataFrame のデータとして使用されます。 columns パラメータを指定して列名をカスタマイズし、index パラメータを指定してインデックスをカスタマイズします。例えば:
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'], 'age': [25, 30, 35, 40], 'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame.from_dict(data, orient='columns', columns=['name', 'age', 'gender'], index=['a', 'b', 'c', 'd'])
print(df)
出力結果:
a Alice 25 F
b Bob 30 M
c Charlie 35 M
d David 40 M
3. インデックス付けとスライス
シリーズのインデックス作成とスライス
インデックス作成には [] 演算子を、ラベル インデックス作成には .loc[] メソッドを、位置インデックス作成には .iloc[] メソッドを、スライス操作にはスライス操作を、フィルター操作にはブール インデックスを使用します。例えば:
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd',
出力結果
1.0 1.0 1.0 b 2.0 c 3.0 d 4.0 e 5.0 dtype: float64
d 4.0 e 5.0 dtype: float64
DataFrame のインデックス作成とスライス
インデックス作成には [] 演算子を、ラベル インデックス作成には .loc[] メソッドを、位置インデックス作成には .iloc[] メソッドを、スライス操作にはスライス操作を、フィルター操作にはブール インデックスを使用します。例えば
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'], 'age': [25, 30, 35, 40], 'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data, columns=['name', 'age', 'gender'], index=['a', 'b', 'c', 'd'])
#索引
print(df['name'])
#标签索引
print(df.loc['a'])
#位置索引
print(df.iloc[0])
#切片
print(df[1:3])
#筛选
print(df[df['age'] > 30])
输出结果:
```csharp
a Alice
b Bob
c Charlie
d David
Name: name, dtype: object
name Alice
age 25
gender F
Name: a, dtype: object
name Alice
age 25
gender F
Name: a, dtype: object
name age gender
b Bob 30 M
c Charlie 35 M
name age gender
c Charlie 35 M
d David 40 M
4. データクリーニング
重複した行を削除する
DataFrame 内の重複行を削除するには、.drop_duplicates() メソッドを使用します。例えば:
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David', 'Bob'], 'age': [25, 30, 35, 40, 30], 'gender': ['F', 'M', 'M', 'M', 'M']}
df = pd.DataFrame(data, columns=['name', 'age', 'gender'])
# 删除重复行
df = df.drop_duplicates()
print(df)
出力結果:
name age gender
0 Alice 25 F
1 Bob 30 M
2 Charlie 35 M
3 David 40
5. 空の値を置換する
.fillna() メソッドを使用して、DataFrame 内の空の値を指定した値に置き換えます。例えば
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'], 'age': [25, None, 35, 40], 'gender': ['F', 'M', 'M', None]}
df = pd.DataFrame(data, columns=['name', 'age', 'gender'])
# 替换空值
df = df.fillna({
'age': 30, 'gender': 'M'})
print(df)
出力結果:
name age gender
0 Alice 25.0 F
1 Bob 30.0 M
2 Charlie 35.0 M
3 David 40.0 M
6. データ型変換
Pandas では、Series と DataFrame のデータ型変換に astype() メソッドを使用できます。astype() メソッドは、Series または DataFrame のデータ型を指定されたデータ型に変換できます。以下にサンプルコードを示します。
import pandas as pd
# 创建一个Series
s = pd.Series(['1', '2', '3'])
print(s)
# 将Series中的数据类型转换为整型
s = s.astype(int)
print(s)
# 创建一个DataFrame
df = pd.DataFrame({
'A': ['1', '2', '3'], 'B': ['4', '5', '6']})
print(df)
# 将DataFrame中的数据类型转换为整型
df = df.astype(int)
print(df)
出力結果:
0 1
1 2
2 3
dtype: object
0 1
1 2
2 3
dtype: int64
A B
0 1 4
1 2 5
2 3 6
A B
0 1 4
1 2 5
2 3 6
7. データ分析
Pandas では、Series と DataFrame のデータ分析に、記述統計、並べ替え、フィルタリング、グループ化、集計、その他の操作を含むさまざまな方法を使用できます。以下にサンプルコードを示します。
import pandas as pd
# 创建一个Series
s = pd.Series([1, 2, 3, 4, 5])
# 描述性统计
print(s.describe())
# 排序
print(s.sort_values(ascending=False))
# 筛选
print(s[s > 3])
# 创建一个DataFrame
df = pd.DataFrame({
'A': [1, 2, 3, 4,{
'A': [1, 2, 3, 4, 5], 'B': [6, 7, 8, 9, 10]})\n\n# 分组\ngrouped = df.groupby('A')\n\n# 聚合\nprint(grouped.aggregate(['sum', 'mean', 'max']))\n```\n\n输出结果:\n\n```\ncount 5.000000\nmean 3.000000\nstd 1.581139\nmin 1.000000\n25% 2.000000\n50% 3.000000\n75% 4.000000\nmax 5.000000\ndtype: float64\n4 5\n3 4\n2 3\n1 2\n0 1\ndtype: int64\n3 4\n4 5\ndtype: int64\n B
sum mean max
A
1 6.0 6.0 6
2 7.0 7.0 7
3 8.0 8.0 8
4 9.0 9.0 9
5 10.0 10.0 10
8. まとめ
Python 機械学習の概要では、Pandas ライブラリの Series と DataFrame の作成、インデックス付け、スライス、データ クリーニング、データ分析、その他の操作を学びました。この研究の概要は次のとおりです。
シリーズは、リスト、辞書、配列などを通じて作成できる 1 次元配列です。シリーズはインデックスを介してアクセスおよび変更でき、スライス操作をサポートします。
DataFrame は、リスト、辞書、配列などによって作成できる 2 次元のテーブルです。DataFrame は列名と行インデックスによってアクセスおよび変更でき、スライス操作をサポートします。
データ クリーニングはデータ分析の前作業であり、欠損値、繰り返し値、外れ値などの問題への対処が含まれます。Pandas は、dropna()、fillna()、drop_duplicates()、replace() など、データ クリーニングのためのさまざまなメソッドを提供します。
データ分析はデータマイニングの中核となる作業で、記述統計、並べ替え、フィルタリング、グループ化、集計、その他の操作が含まれます。Pandas は、describe()、sort_values()、groupby()、aggregate() など、データ分析のためのさまざまなメソッドを提供します。
データの視覚化はデータ分析の重要な手段であり、データの分布や傾向などの情報をグラフで表示できます。Pandas は、plot()、hist()、scatter() など、さまざまなチャート タイプの視覚化メソッドを提供します。
つまり、Pandas は Python 機械学習には欠かせないツールの 1 つであり、Pandas を使いこなすことはデータ分析やマイニングにとって非常に重要です。