構造 DataFrame
在pandas中,表格數據基本都是以DataFrame保存的,所以一般需要先將普通數據轉換為DataFrame格式再進行操作,有5種常用方法
1、由 Series 數據轉換
這種方式指定每一列為一個Series數據並給出列名,要求必須指定列名不然會報錯,不要求每一個Series數據長度相同,默認以最長的為行高,空白部分自動補齊,行下標(index)如果不指定則會默認為[0,1,2…]
d = {'one':pd.Series([1,2,3],index=['a','b','c']),
'two':pd.Series([4,5,6,7],index=['b','c','f','g'])}
df = pd.DataFrame(d)
# pd.DataFrame({'列名': pd.Series(['列表'])})

2、由字典轉換
這種方式將字典轉換為DataFrame,每一個字典字段指定一列,要求每列長度必須相同且必須指定列名
h = {'一':[1,2,3,4],
'二':[6,7,8,9]}
df = pd.DataFrame(h,index=['one','second','third','fourth'])

3、由列表轉換
從列表轉化為DataFrame,列表每一個子元素為一行,默認列名為[0,1,2…],元素長度可以不同,默認填充至最長行
data = []
data.append((7,3.14,'good'))
data.append((5,9.8,'wow','hello'))
data.append((8,4.667,'lalala'))
df = pd.DataFrame(data)

4、由字典列表轉換
從字典列表轉換,與從列表轉換類似,但通過字典指定列名,列表每一個子元素為一行,長度可以不同
data = []
data.append({'a':55,'b':25,'str':'hello'})
data.append({'a':12,'b':13,'c':14})
df = pd.DataFrame(data)

5、由元組字典轉換
雖然不怎么常用,但是也給出方法,由於比較復雜所以講解一下,這種方法相當於在表中建立子表,字典中每一個字段為一列,比如('A','b'):{('one','1'):1,('one','2'):2}定義了一列,行高為2,列索引為’A’的子下標’b’,行索引為’one’的子下標’1’與子下標’2’
data = {('A','b'):{('one','1'):1,('one','2'):2},
('A','a'): {('one','2'):3,('one','1'):4},
('A','c'): {('one','2'):5,('one','1'):6},
('B','a'): {('one','3'):7,('one','2'):8},
('B','b'): {('one','1'):9,('one','2'):10}
}
df = pd.DataFrame(data)
以DataFrame形式寫入表格
df.to_excel('test.xlsx')
