1.创建dataframe (二维)
注意:
dataframe 由多个Series构成,结构类似,打印时不要用print,会影响整体输出美观
每列元素的类型type(frame[‘year’])就是Series
frame[[‘year’]]则是dataframe
导入包:
import numpy as np
import pandas as pd
1.创建:
- frame=pd.DataFrame(数据, columns=[列索引], index=[行索引])
- 嵌套字典创建(外层key是列名,内层key是行名)
# 用字典创建dataframe
data = {'city': ['北京', '北京', '北京', '上海', '上海', '上海'],
'year': [2000, 2001, 2002, 2001, 2002, 2003],
'population': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
frame = pd.DataFrame(data)
frame
city year population
0 北京 2000 1.5
1 北京 2001 1.7
2 北京 2002 3.6
3 上海 2001 2.4
4 上海 2002 2.9
5 上海 2003 3.2
2.索引:
2.通过对列的索引位置交换可以改变排列:
pd.DataFrame(data, columns=[‘year’, ‘city’, ‘population’])
3.对于字典创建的数据在输入列索引columns时,可以添加多个索引,值为NaN
4.列索引多了不会报错,但是行索引多了会报错
frame2= pd.DataFrame(data,columns=['year','city', 'population', 'debt'],
index=['a', 'b', 'c', 'd', 'e', 'f'])
3.方法
df.info() #对象类型, 行数据量,列数,每列的非空数据, 数据类型,各种类型的个数,占用空间的大小
df.decribe(include=object) #默认数值型数据.加上include字符串也可以描述
df.head()
df.tail()
pd.read_csv(文件路径)
pd.read_excel()
pd.to_csv()
2.索引
df[[列]]
df.列名
df.loc[行,列] #以行/列名查看
df.iloc[行,列] # 以数字查看
布尔索引:
一般根据下标索引,布尔索引可以按照真假来索引.
外层数据data[ bool值]传入的真假个数必须与外层数据个数相同.
通过比较运算符得到bool值,
df['列名']
df.列名 #只能提取列,不能用它创建新列
df[['列名']]
df.loc[行,列]
df.iloc[] #integer
3.空值|重复值处理
删除空值 | 重复值
df.isnull() 判断空值
df.dropna(how="any | all",axis=0|1 ,inplace,subset=['','']) 删除空值
df.fillna(val | {列名:'填充值'},method='ffill',limit=n) #填充空值
df.duplicated() 判断重复值
df.drop_duplicates(keep='first'|'last',subset=[]) 删除重复值
4.重置索引
df.set_index() 把某一列作为索引
df.reset_index(drop=) 把索引重置(0-n),drop参数:是否把现在的索引当成你的列,相当于多了一个列.
5.重置列名
df.rename(columns={旧列名:新列名})
df.columns=[]
6.删除列:
df.drop(lables=[],inplace= ,axis=)
del df[]
df.replace()