python基礎---PandasのDataFrameとpandas.core.series.Series

17795 ワード

2つのデータ型の比較
参照先:https://blog.csdn.net/LZH_12345/article/details/79798787まとめ:2つのデータの横属性はindexであり、DataFrameのcolumns属性のみが縦属性を指す
Seriesのデータはindexとindexだけです.name属性、columns属性なし、DataFrameデータにcolumns属性あり
ここで、seriesのデータは辞書のデータのように、インデックスとデータを含む.別の形式のデータは、複数の属性を使用して次のプログラムの表示を通じて、2つのデータの違いを比較することができます.
import pandas as pd

def fenge(x):
    print("*******%s    *******"%x)
data={'names':['Bob','Jane','Jack','Ann'],
       'sex':['M','F','M','F'],
       'age':[21,30,26,28]}
se = pd.Series(data)
#  “names”,"sex".. se index ,   se.index=[]  
af_se = pd.DataFrame(data)
fenge("Series     ")
print(se)
'''
names    [Bob, Jane, Jack, Ann]
sex                [M, F, M, F]
age            [21, 30, 26, 28]
dtype: object
'''
fenge("DataFrame     ")
print(af_se)
'''
  names sex  age
0   Bob   M   21
1  Jane   F   30
2  Jack   M   26
3   Ann   F   28
'''
#     ,         af_se columns  ,           
af_se2=pd.DataFrame(af_se,index=[0,"b","2","4"]\
        ,columns=["names","se","tr","fo"])
fenge(" DataFrame            ")
print(af_se2)
'''
   names  se  tr  fo
0   Bob NaN NaN NaN
b   NaN NaN NaN NaN
2   NaN NaN NaN NaN
4   NaN NaN NaN NaN
'''

Seriesタイプのデータ
個人の理解:1次元辞書とリストの結合のように、デフォルトのindexはリストと同じように0から始まるが、異なるのはこのデータ型のインデックスが自分で定義できることであり、例えばa.index=[インデックス1、インデックス2...]seriesのデータに対して:変数名を使用することができる.indexと変数名.valuesデータ内容の表示
import pandas as pd

def fenge(x):
    print("*******%s    *******"%x)

a=[1,2,6,8,4]
fenge("  a")
print(a)
#[1, 2, 6, 8, 4]
b=pd.Series(a)
fenge("series")
print (b)
'''
0    1
1    2
2    6
3    8
4    4
dtype: int64
'''
b.index=["zero","first","second","third","forth"]
fenge("  index ")
print(b)
"""
zero      1
first     2
second    6
third     8
forth     4
dtype: int64
"""
fenge("  b values")
print(b.values)
#[1 2 6 8 4]
print(b.keys)
'''

'''

seriesオブジェクト自体とindexにnameを追加
import pandas as pd

def fenge(x):
    print("*******%s    *******"%x)

a=[1,2,'6',8,4]

b=pd.Series(a)
fenge("series")
print(b)
'''
0    1
1    2
2    6
3    8
4    4
dtype: object
'''
fenge("       ")
b.name="mingzi"
b.index.name="suoyin"
print (b)
'''
suoyin
0    1
1    2
2    6
3    8
4    4
Name: mingzi, dtype: object
'''

DataFrameのデータ型
個人の認識:Seriesとの多次元に相当し、1行のインデックスだけでなく、複数の属性のインデックスを持つことができ、以下のプログラムから見ることができます.しかし主義的にはreindex(データ,index=[])関数は元のデータの内容を変えず,パラメータのデータを関数にコピーして形式を変える.ただし、reindex()のindex[]パラメータにパラメータデータが表示されない場合、新しく生成されたデータの内容はデフォルトで空です.
使用するデータ
2013/10/24
3
0
2013/10/25
4
1
2013/10/26
5
2
2013/10/27
5
3
2013/10/28
5
4
2013/10/29
5
5
import pandas as pd

def fenge(x):
    print("*******%s    *******"%x)

df=pd.read_csv("test_data.csv",header=None)

fenge("   df      ")
print(df.head(4))
'''
            0  1  2
0  2013/10/24  3  0
1  2013/10/25  4  1
2  2013/10/26  5  2
3  2013/10/27  5  3
'''
df.columns=["A","B","C"]
fenge("      ")
print(df.head(4))
'''
            A  B  C
0  2013/10/24  3  0
1  2013/10/25  4  1
2  2013/10/26  5  2
3  2013/10/27  5  3
'''
fenge("  index  ")
df.index=["a","b","c","d","e","f"]
print(df.head(4))
'''
            A  B  C
a  2013/10/24  3  0
b  2013/10/25  4  1
c  2013/10/26  5  2
d  2013/10/27  5  3
'''
#             
af_df=df.reindex(index=["e","f","d","fo","fi","si"])
fenge("  reindex    ")
print(af_df.head(4))
'''
             A    B    C
e   2013/10/28  5.0  4.0
f   2013/10/29  5.0  5.0
d   2013/10/27  5.0  3.0
fo         NaN  NaN  NaN
'''
fenge("  reindex    ")
print(df.head(4))
'''
            A  B  C
a  2013/10/24  3  0
b  2013/10/25  4  1
c  2013/10/26  5  2
d  2013/10/27  5  3
'''