Pandas詳細2のDataFrameオブジェクト
10610 ワード
に約束
DataFrame
DataFrameはテーブル型のデータ構造で、行インデックス(indexに保存)と列インデックス(columnsに保存)があります.
一、DataFrameオブジェクトの共通属性: DateFrameを作成する方法はたくさんあります(後述します).最も一般的なのは、等長リストまたはNumpyからなる辞書を直接入力することです.
Province
pop
year
0
Guangdong
1.3
2018
1
Beijing
2.5
2018
2
Qinghai
1.1
2018
3
Fujiang
0.7
2018 Seriesと同様に、作成時にシーケンスを指定することもできます(辞書に欠落しているNaNの場合):
year
Province
pop
debt
one
2018
Guangdong
1.3
NaN
two
2018
Beijing
2.5
NaN
three
2018
Qinghai
1.1
NaN
four
2018
Fujiang
0.7
NaN Seriesと同様に、DataFrameのindexとcolumnsにはname属性があります:
year
Province
pop
debt
one
2018
Guangdong
1.3
NaN
two
2018
Beijing
2.5
NaN
three
2018
Qinghai
1.1
NaN
four
2018
Fujiang
0.7
NaN
Province
year
Province
pop
debt
English
one
2018
Guangdong
1.3
NaN
two
2018
Beijing
2.5
NaN
three
2018
Qinghai
1.1
NaN
four
2018
Fujiang
0.7
NaN shape属性で取得するDataFrameの行数と列数:
コード結果: valuesプロパティは、DataFrameのデータ: を2次元ndarrayで返します.
コード結果:カラムインデックスは、DataFrameオブジェクトのプロパティとして使用されます:
コード結果:
二、DataFrameオブジェクトの一般的なアクセス、割り当て、削除方法: DataFrame_object[]はカラムインデックスでアクセスでき、ラベルが1つしかない場合Series、複数の場合DataFrame: を返します.
Province
Province
pop
English
one
Guangdong
1.3
two
Beijing
2.5
three
Qinghai
1.1
four
Fujiang
0.7 DataFrame_object.loc[]指定した行を行インデックスで取得できます:
コード結果:
Province
year
Province
pop
debt
English
one
2018
Guangdong
1.3
NaN
two
2018
Beijing
2.5
NaN
three
2018
Qinghai
1.1
NaNはまた、単一値: を取得することができる.
コード結果: DataFrameの列は、値(値または値のセット)を割り当てることによって変更できます: .
Province
year
Province
pop
debt
English
one
2018
Guangdong
1.3
2.00
two
2018
Beijing
2.5
2.25
three
2018
Qinghai
1.1
2.50
four
2018
Fujiang
0.7
2.75存在しないカラムに値を割り当てると、delで削除できる新しいカラムが作成されます:
Province
year
Province
pop
debt
eastern
English
one
2018
Guangdong
1.3
2.00
True
two
2018
Beijing
2.5
2.25
False
three
2018
Qinghai
1.1
2.50
False
four
2018
Fujiang
0.7
2.75
False
コード結果:もちろん、転置も可能:
English
one
two
three
four
Province
year
2018
2018
2018
2018
Province
Guangdong
Beijing
Qinghai
Fujiang
pop
1.3
2.5
1.1
0.7
debt
2
2.25
2.5
2.75
三、複数種類のDataFrameの作成方法 DataFrame()を呼び出すと、複数のフォーマットのデータをDataFrameオブジェクトに変換できます.3つのパラメータdata、index、columnsは、それぞれデータ、行インデックス、列インデックスです.dataは、 であってもよい
1 D配列
A
B
C
D
1
9
8
4
6
2
5
7
7
4
3
6
3
0
2
4
4
6
9
8
2辞書
行インデックスはindexで決定され、列インデックスは辞書のキーで決定されます.
コード結果:
Province
pop
year
1
Guangdong
1.3
2018
2
Beijing
2.5
2018
3
Qinghai
1.1
2018
4
Fujiang
0.7
2018
3構造配列
カラムインデックスは、構造配列のフィールド名によって決定されます.
name
count
0
b’item1’
10
1
b’item2’
20
2
b’item3’
30
3
b’item4’
40さらにfrom_を呼び出すことができる先頭のクラスメソッドで、特定のデータをDataFrameオブジェクトに変換します.例えばfrom_dict()は、そのorientパラメータが辞書キーに対応する方向を指定し、デフォルトは「columns」:
a
b
0
1
4
1
2
5
2
3
6
0
1
2
a
1
2
3
b
4
5
6
四、DataFrameオブジェクトを別の形式のデータに変換する to_dict()メソッドはDataFrameオブジェクトを辞書に変換し、パラメータorientは辞書要素のタイプを決定します:
コード結果:
コード結果:
コード結果:に似ているのはto_ですrecords()、to_csv()等 皆さんの閲覧に感謝して、私の努力があなたを助けることができることを望んで、共に努力します!
import pandas as pd
from pandas import DataFrame
import numpy as np
DataFrame
DataFrameはテーブル型のデータ構造で、行インデックス(indexに保存)と列インデックス(columnsに保存)があります.
一、DataFrameオブジェクトの共通属性:
dict1={"Province":["Guangdong","Beijing","Qinghai","Fujiang"],
"year":[2018]*4,
"pop":[1.3,2.5,1.1,0.7]}
df1=DataFrame(dict1)
df1
コード結果:Province
pop
year
0
Guangdong
1.3
2018
1
Beijing
2.5
2018
2
Qinghai
1.1
2018
3
Fujiang
0.7
2018
df2=DataFrame(dict1,columns=['year','Province','pop','debt'],index=['one','two','three','four'])
df2
コード結果:year
Province
pop
debt
one
2018
Guangdong
1.3
NaN
two
2018
Beijing
2.5
NaN
three
2018
Qinghai
1.1
NaN
four
2018
Fujiang
0.7
NaN
df2
コード結果:year
Province
pop
debt
one
2018
Guangdong
1.3
NaN
two
2018
Beijing
2.5
NaN
three
2018
Qinghai
1.1
NaN
four
2018
Fujiang
0.7
NaN
df2.index.name='English'
df2.columns.name='Province'
df2
コード結果:Province
year
Province
pop
debt
English
one
2018
Guangdong
1.3
NaN
two
2018
Beijing
2.5
NaN
three
2018
Qinghai
1.1
NaN
four
2018
Fujiang
0.7
NaN
df2.shape
コード結果:
(4, 4)
df2.values
コード結果:
array([[2018, 'Guangdong', 1.3, nan],
[2018, 'Beijing', 2.5, nan],
[2018, 'Qinghai', 1.1, nan],
[2018, 'Fujiang', 0.7, nan]], dtype=object)
df2.Province
コード結果:
English
one Guangdong
two Beijing
three Qinghai
four Fujiang
Name: Province, dtype: object
二、DataFrameオブジェクトの一般的なアクセス、割り当て、削除方法:
df2['Province']
コード結果:English one Guangdong two Beijing three Qinghai four Fujiang Name:Province,dtype:objectdf2[['Province','pop']]
コード結果:Province
Province
pop
English
one
Guangdong
1.3
two
Beijing
2.5
three
Qinghai
1.1
four
Fujiang
0.7
df2.loc['one']
コード結果:
Province
year 2018
Province Guangdong
pop 1.3
debt NaN
Name: one, dtype: object
df2.loc['one':'three']
コード結果:Province
year
Province
pop
debt
English
one
2018
Guangdong
1.3
NaN
two
2018
Beijing
2.5
NaN
three
2018
Qinghai
1.1
NaN
df2.loc['one','Province']
コード結果:
'Guangdong'
df2["debt"]=np.arange(2,3,0.25)
df2
コード結果:Province
year
Province
pop
debt
English
one
2018
Guangdong
1.3
2.00
two
2018
Beijing
2.5
2.25
three
2018
Qinghai
1.1
2.50
four
2018
Fujiang
0.7
2.75
df2['eastern']=df2.Province=='Guangdong'
df2
コード結果:Province
year
Province
pop
debt
eastern
English
one
2018
Guangdong
1.3
2.00
True
two
2018
Beijing
2.5
2.25
False
three
2018
Qinghai
1.1
2.50
False
four
2018
Fujiang
0.7
2.75
False
del df2['eastern']
df2.columns
コード結果:
Index(['year', 'Province', 'pop', 'debt'], dtype='object', name='Province')
df2.T
English
one
two
three
four
Province
year
2018
2018
2018
2018
Province
Guangdong
Beijing
Qinghai
Fujiang
pop
1.3
2.5
1.1
0.7
debt
2
2.25
2.5
2.75
三、複数種類のDataFrameの作成方法
1 D配列
df3=pd.DataFrame(np.random.randint(0,10,(4,4)),index=[1,2,3,4],columns=['A','B','C','D'])
df3
コード結果:A
B
C
D
1
9
8
4
6
2
5
7
7
4
3
6
3
0
2
4
4
6
9
8
2辞書
行インデックスはindexで決定され、列インデックスは辞書のキーで決定されます.
dict1
コード結果:
{'Province': ['Guangdong', 'Beijing', 'Qinghai', 'Fujiang'],
'pop': [1.3, 2.5, 1.1, 0.7],
'year': [2018, 2018, 2018, 2018]}
df4=pd.DataFrame(dict1,index=[1,2,3,4])
df4
コード結果:Province
pop
year
1
Guangdong
1.3
2018
2
Beijing
2.5
2018
3
Qinghai
1.1
2018
4
Fujiang
0.7
2018
3構造配列
カラムインデックスは、構造配列のフィールド名によって決定されます.
arr=np.array([('item1',10),('item2',20),('item3',30),('item4',40)],dtype=[("name","10S"),("count",int)])
df5=pd.DataFrame(arr)
df5
コード結果:name
count
0
b’item1’
10
1
b’item2’
20
2
b’item3’
30
3
b’item4’
40
dict2={"a":[1,2,3],"b":[4,5,6]}
df6=pd.DataFrame.from_dict(dict2)
df6
コード結果:a
b
0
1
4
1
2
5
2
3
6
df7=pd.DataFrame.from_dict(dict2,orient="index")
df7
コード結果:0
1
2
a
1
2
3
b
4
5
6
四、DataFrameオブジェクトを別の形式のデータに変換する
df7.to_dict()
コード結果:
{0: {'a': 1, 'b': 4}, 1: {'a': 2, 'b': 5}, 2: {'a': 3, 'b': 6}}
df7.to_dict(orient="records")
コード結果:
[{0: 1, 1: 2, 2: 3}, {0: 4, 1: 5, 2: 6}]
df7.to_dict(orient="list")
コード結果:
{0: [1, 4], 1: [2, 5], 2: [3, 6]}