panads数据结构——DataFrame基本概念及创建:
二维数组DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值,字符串,布尔值等)。
DataFrame既有行标签index,也有列标签columns,可以看作是由series组成的字典(共用同一个索引)。
DataFrame的创建方法一:传入一个由等长列表或numpy数组组成的字典:
data={'name':['a','b','c'],
'age':[10,12,13],
'gender':['m','m','w']}
df1=pd.DataFrame(data)
print(df1)
age gender name
0 10 m a
1 12 m b
2 13 w c
结果DataFrame会自动加上索引,就像series一样,按照指定顺序排列,字典的key会默认作为columns,字典的值的长度必须保持一致。
创建方法二:由series组成的字典。
data2={'name':pd.Series(np.random.rand(4)),
'age':pd.Series(np.random.rand(3)),
'gender':pd.Series(np.random.rand(3))}
df2=pd.DataFrame(data2)
print(df2)
age gender name
0 0.019547 0.691030 0.127972
1 0.690846 0.530450 0.409225
2 0.115162 0.944231 0.734464
3 NaN NaN 0.410279
series自带index作为index,字典的key作为columns,series的长度可以不一致,缺失值会填充为NaN。
创建方法三;通过二维数组直接创建。
ar=np.random.rand(9).reshape(3,3)
df3=pd.DataFrame(ar,index=['a','b','c'],columns=[1,2,3])
print(df3)
1 2 3
a 0.856429 0.225810 0.061368
b 0.192359 0.346842 0.970712
c 0.164591 0.161680 0.547799
直接创建一个二维数组,指定索引和列名,注意索引和列名长度必须与数组格式保持一致。
创建方法四:由字典组成的列表。
data=[{"a":1,"b":2,"c":3},{"d":4,"e":5}]
df1=pd.DataFrame(data)
print(df1)
a b c d e
0 1.0 2.0 3.0 NaN NaN
1 NaN NaN NaN 4.0 5.0
字典的key的并集作为columns,index不作指定为默认数组标签。
创建方法五:由字典组成的字典,即嵌套字典。
data={'jack':{'math':80,'English':90,'art':78},
'marry':{'math':88,'English':90,'art':68},
'tom':{'math':80,'English':90}}
df1=pd.DataFrame(data)
print(df1)
jack marry tom
English 90 90 90.0
art 78 68 NaN
math 80 88 80.0
外层字典的key作为columns,内层字典的key作为nidex。
注意:这里的index如果重新指定index,并不是改变原来index,而是返回空值!