差別:
series,隻是一個一維資料結構,它由index和value組成。
dataframe,是一個二維結構,除了擁有index和value之外,還擁有column。
聯系:
dataframe由多個series組成,無論是行還是列,單獨拆分出來都是一個series。
代碼示範:
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
data = {'Country':['Belgium', 'India', 'Brazil'],
'Capital':['Brussels', 'New Delhi', 'Brasilia'],
'Population':[11190846, 1303171035, 207847528]
}
# Series
s1 = Series(data['Country'])
print(s1)
'''
0 Belgium
1 India
2 Brazil
dtype: object
'''
print(s1.values) # 類型: <class 'numpy.ndarray'>
'''
['Belgium' 'India' 'Brazil']
'''
print(s1.index)
'''
RangeIndex(start=0, stop=3, step=1)
'''
# 為Series指定index
s1 = Series(data['Country'], index=['A', 'B', 'C'])
print(s1)
''' 索引更改
A Belgium
B India
C Brazil
dtype: object
'''
# Dataframe
df1 = pd.DataFrame(data)
print(df1)
'''
Capital Country Population
0 Brussels Belgium 11190846
1 New Delhi India 1303171035
2 Brasilia Brazil 207847528
'''
print(df1['Capital']) # 類型: series
'''
0 Brussels
1 New Delhi
2 Brasilia
Name: Capital, dtype: object
'''
print(df1.iterrows()) # 傳回 一個 生成器 <generator object DataFrame.iterrows at 0x7f226a67b728>
for row in df1.iterrows():
print(row)
print(row[0], row[1])
print(type(row[0]), type(row[1]))
break
'''
print(row) 傳回了一個元組
(0, Capital Brussels
Country Belgium
Population 11190846
Name: 0, dtype: object)
'''
'''
print(row[0], row[1]) 的傳回值
0 Capital Brussels
Country Belgium
Population 11190846
Name: 0, dtype: object
'''
'''
print(type(row[0]), type(row[1]))
<class 'int'> <class 'pandas.core.series.Series'>
row[1] 是一個 series,而且原來的列名,現在變成了現在的索引名,
由此可見,dataframe是由多個行列交錯的series組成。
'''
# 現在可以 建構幾個series
s1 = pd.Series(data['Country'])
s2 = pd.Series(data['Capital'])
s3 = pd.Series(data['Population'])
df_new = pd.DataFrame([s1, s2, s3], index=['Country', 'Captital', 'Population'])
print(df_new)
'''
0 1 2
Country Belgium India Brazil
Captital Brussels New Delhi Brasilia
Population 11190846 1303171035 207847528
可以看到,行 和 列 都是颠倒的,是以需要進行一下轉置
'''
print(df_new.T)
'''
Country Captital Population
0 Belgium Brussels 11190846
1 India New Delhi 1303171035
2 Brazil Brasilia 207847528
'''
'''
總結:
series, 就是一個 一維 的資料結構,它是由 index 和 value 組成。
dataframe, 是一個 二維 資料結構,它由多個 series 構成。
'''