pandas
1、header = 0 不同于 header = None
header = 0 表示 第0行为列
header = None 表示读取的时候 认为没有标题,全是数据
可以用 skiprows = 1 跳过列名
2、pandas 获取指定的行列数据
df.iloc[0:2,[0,3]] #读取 第 [0,2)行的第[0,3)列
3、创建 df = DataFram(data,index = '',columns = '')
dates = pd.date_range('20130101', periods=3)
data = pd.DataFrame(data,index=dates,columns=['A','B','C'])
4、查看列标题,行标题,数据描述,转置
df.columns
df.index
df.describe() #带括号 查看数据描述,包括均值,方差,分位点
df.T
5、排序
df.sort_values(by='B') # 按照 列 B 进行排序 默认升序
df.sort_index(axis=1,ascending=False) # 根据索引 排序 axis = 1 表示 分别对每一行排序,axis= 0表示对每一列排序
ascending = False 表示按照降序排序
6、行列选择
df.loc[:,['A','B']] #选择所有行的 A,B列
df[0:3] #选择[0,3)行
df.iloc[3] #选择第三行数据
df.iloc[3:5,0:2] # [3,5)行 [0,2)列数据
df.iloc[3:5,0:2] # 这里都是切片
df.iloc[[1,2,4],[0,2]] #用列表进行跳跃选择 行列 注意这样的话 行选择需要是列表需要多加一层[] [[1,2,3],[0:2]]是错误的
df.iloc[1,1] = df.iat[1,1] #获取位置[1,1] 的元素(单个元素可以不写成列表形式)
7、数据选择、赋值
(1)对某一列进行数据选择
df[df.A > 0] # 判断 A列值是否大于0 返回boolean值
df[df > 0] = -df # 把 df(可以看作矩阵) 中大于0的元素 取反
(2) 把 D列赋值为 np.array()
df.loc[:,'D'] = np.array([5] * len(df))
(3)根据条件对某一列值进行修改
下面就是找出满足第14列条件的情况,修改第14列,当然这里可以修改别的列,只要条件满足,可以选择你想要修改的列
df.loc[df[14] == "<=50K.",[14]] = "<=50K"
df.loc[df[14] == ">50K.",[14]] = ">50K"
8、缺失值处理
(1)去除包含缺失值的行(只要有缺失值就去掉)
df1.dropna(how='any')
(2)把缺失值改为5
df1.fillna(value=5)
(3)判断是否是缺失值
pd.isna(df1) # 返回 bool矩阵,注意 是 用 pd调用 df
9、数据统计
(1)求均值
df.mean(axis = 1) # 对每一行求均值 默认为按照列求均值
10、groupby用法
data = [
['男',20,98],
['男',24,88],
['女',35,89],
['女',27,90]
]
df = pd.DataFrame(data,columns=['gender','age','score'])
print(df)
print(df.groupby("gender").size())
print(df.groupby("gender").mean())
Output:
gender age score
0 男 20 98
1 男 24 88
2 女 35 89
3 女 27 90
gender
女 2
男 2
dtype: int64
age score
gender
女 31.0 89.5
男 22.0 93.0
x = []
x.append([1,2,3])
x.append([4,5,7])
print(x)
df = pd.DataFrame({"x":x},index=range(len(x)))
print(type(df['x'].values)) # <class 'numpy.ndarray'>,其实内部每行仍然是list
print(np.asarray(df['x'].values))
# 把外层的ndarray变为list,df['x'].values就变成了 list[list,list],即lists
print(np.asarray(list(df['x'].values)))
'''
output:
[[1, 2, 3], [4, 5, 7]]
<class 'numpy.ndarray'>
[list([1, 2, 3]) list([4, 5, 7])]
[[1 2 3]
[4 5 7]]
'''
参考:
http://pandas.pydata.org/pandas-docs/stable/10min.html 官方10分钟教程
https://blog.csdn.net/brucewong0516/article/details/79096633