"二维数组"Dataframe
是一个表格型的数据结构,包含一组有序的列,其列的值类型可以是数值、字符串、布尔值等。
创建方式:
1 由数组/list组成的字典
import numpy as np
import pandas as pd
# 导入numpy、pandas模块
data1 = {'a':[1,2,3],
'b':[3,4,5],
'c':[5,6,7]}
data2 = {'one':np.random.rand(3),
'two':np.random.rand(3)}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
print(df1)
print('===========================”')
print(df2)
通过参数设置可以修改列名和索引名:index,columns
2 由Series组成的字典
data1 = {'one':pd.Series(np.random.rand(2)),
'two':pd.Series(np.random.rand(3))} # 没有设置index的Series
data2 = {'one':pd.Series(np.random.rand(2), index = ['a','b']),
'two':pd.Series(np.random.rand(3),index = ['a','b','c'])} # 设置了index的Series
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
print(df1)
print('===========================”')
print(df2)
# 由Seris组成的字典 创建Dataframe,columns为字典key,index为Series的标签(如果Series没有指定标签,则是默认数字标签)
# Series可以长度不一样,生成的Dataframe会出现NaN值
3 通过二维数组直接创建
import numpy as np
import pandas as pd
# 导入numpy、pandas模块
ar = np.random.rand(9).reshape(3,3)
print(ar)
print('===========================\n')
df1 = pd.DataFrame(ar)
df2 = pd.DataFrame(ar, index = ['a', 'b', 'c'], columns = ['one','two','three'])
print(df1)
print('===========================\n')
print(df2)
练习:用三种不同的方法,创建以下Dataframe(保证columns和index一致,值不做要求)
#使用二维数组创建
ar1 = np.random.random(9).reshape(3,3)
df1 = pd.DataFrame(ar1,index=['a','b','c'],columns=['one','two','three'])
df1
#使用Series组成字典创建
import random
ar2 = {'one':pd.Series(random.sample(range(10,20),3), index = ['a','b','c']),
'two':pd.Series(random.sample(range(10,30),3),index = ['a','b','c']),
'thr':pd.Series(random.sample(range(10,40),3),index = ['a','b','c'])}
df2 = pd.DataFrame(ar2)
df2
#直接使用字典创建
df3 = pd.DataFrame({'one':[1,2,3,4,5],
'two':[2,3,4,5,6],
'thr':[4,5,6,7,8],
'fou':[5,6,7,8,90]}
,index=['a','b','c','d','e'])
df3