Pandas 创建DataFrame
文章目录
Pandas 中 DataFrame是二维数据结构,它包含一组有序的列,每列可以是不同的数据类型,DataFrame既有行索引,也有列索引,它可以看作是Series组成的字典,不过这些Series共用一个索引。
pandas.DataFrame( data, index, columns, dtype, copy)
data
:支持多种数据类型,如:ndarray
,series
,map
,lists
,dict
,constant
和另一个DataFrame
index
:行标签,如果没有传递索引值,默认值为np.arrange(n)
columns
:列标签,如果没有传递索引值,默认值为np.arrange(n)
dtype
:每列的数据类型。copy
:是否复制数据,默认值为False
1. 创建空DataFrame
import pandas as pd
df = pd.DataFrame()
print (df)'''
Empty DataFrame
Columns: []
Index: []
'''
2. 使用列表创建DataFrame
# 1. 从单个列表创建DataFrame
data = [1,2,3,4,5]
df = pd.DataFrame(data)
print (df)'''0
0 1
1 2
2 3
3 4
4 5
'''# 2. 从二维列表创建DataFrame
data = [['张三', 20],['李四', 21],['王五', 22]]
df = pd.DataFrame(data,columns=['Name','Age'])
print (df)'''Name Age
0 张三 20
1 李四 21
2 王五 22
'''
3. 使用ndarrays/Lists的字典创建DataFrame
# 1. 使用函数range(n)的默认索引。
data = {'name':['张三', '李四', '王五', '赵四'],'age':[20, 21, 22, 23]}
df = pd.DataFrame(data)
print (df)'''name age
0 张三 20
1 李四 21
2 王五 22
3 赵四 23
'''# 2. 使用列表作为索引,创建DataFrame
data = {'name':['张三', '李四', '王五', '赵四'],'age':[20, 21, 22, 23]}
df = pd.DataFrame(data, index=['rank1','rank2','rank3','rank4'])
print (df)'''name age
rank1 张三 20
rank2 李四 21
rank3 王五 22
rank4 赵四 23
'''
所有的ndarrays/list
必须具有相同的长度。如果传递了索引(index
),则索引的长度应等于数组的长度。如果没有传递索引,则默认情况下,索引为range(n)
,其中n
为数组长度。
4. 使用字典列表创建DataFrame
字典列表可作为输入数据用来创建数据帧(DataFrame),字典键默认为列名。
data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
df = pd.DataFrame(data)
print (df)'''a b c
0 1 2 NaN
1 5 10 20.0
'''
5. 使用Series字典来创建DataFrame
d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
print (df)'''one two
a 1.0 1
b 2.0 2
c 3.0 3
d NaN 4
'''
# 对于第一个Series,观察到没有包含索引'd',输出结果中,对应索引d区域,填写NaN。