python-pandas之DataFrame数据分析(五)

python-pandas之DataFrame数据分析(五)

'''
DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同
的值类型(数值、字符串、布尔值等)。
• DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共用
同一个索引)

 可以输入给DataFrame构造器的数据
类型 说明
二维ndarray 数据矩阵,还可以传入行标和列标。
由数组、列表或元组组成的字典 每个序列会变成DataFrame的一列,所有序列的长度必须相同。
NumPy的结构化/记录数组 类似于“由数组组成的字典”
由Series组成的字典 每个Series会组成一列。如果没有显示指定索引,则各Series的索引会被合并成结果的
行索引。
由字典组成的字典 各内层字典会成为一列。键会被合并成结果的行索引,跟“由Series组成的字典”的情
况一样。
字典或Series的列表 各项将会成为DataFrame的一行。字典键或Series索引的并集将会成为DataFrame的列
标。
由列表或元组组成的列表 类似于“二维ndarray”
另一个DataFrame 该DataFrame的索引将会被沿用,除非显示指定了其他索引。
NumPy的MaskedArray 类似于“二维ndarray”的情况,只是掩码值在结果DataFrame会变成NA/缺失值。
'''
import numpy as np
from pandas import Series ,DataFrame

print('用字典生成DataFrame,key为列的名字。')
data = {'name':['libai','dufu','liqingzhao','wanganshi','tangshi'],
        'age':[100,200,300,400,500],
        'banji':['一班','二班','三班','四班','五班']}
print(DataFrame(data))
print(DataFrame(data,columns=['age','banji','name'])) # 指定列顺序

print('指定索引,在列中指定不存在的列,默认数据用NaN。')
frame2 = DataFrame(data,
                   columns=['age','banji','name','student'],
                   index=['one', 'two', 'three', 'four', 'five'])
print(frame2)
print(frame2['age']) #指定获取列索引对应的值
print(frame2.name)  #指定获取列索引对应的值

print(frame2.ix['five'])    #获取行索引对应的值
frame2['age']=10     # 修改一整列的值
print(frame2)
frame2.age = np.arange(5)   # 用numpy数组修改元素
print(frame2)

print('用Series指定要修改的索引及其对应的值,没有指定的默认数据用NaN。')
val = Series([-1.2, -1.5, -1.7], index = ['two', 'four', 'five'])
frame2['age'] = val
print(frame2)

print('赋值给新列')
frame2['preson'] = (frame2.name == 'tangshi')  # 如果name等于tangshi为True
print(frame2)
print(frame2.columns)

print('DataFrame转置')
pop = {'Nevada':{2001:2.4, 2002:2.9},
        'Ohio':{2000:1.5, 2001:1.7, 2002:3.6}}
frame3 = DataFrame(pop)
print('frame3转置前数组')
print(frame3)
print('frame3转置后数组')
print(frame3.T)

print('指定索引顺序,以及使用切片初始化数据。')
# DataFrame(pop,index=[2001,2002,2003])
pdata = {'Ohio':frame3['Ohio'][:-1],'Nevada':frame3['Nevada'][:2]}
print(DataFrame(pdata))

print('指定索引和列的名称')
frame3.index.name = 'year'
frame3.columns.name = 'state'
print(frame3)
print(frame3.values)



猜你喜欢

转载自blog.csdn.net/m0_38039437/article/details/80682537
今日推荐