6.行数
B.index.size
B.shape[0] ---更快
5.输出满足某条件的行
- (单项条件搜索)选取某列'STATUS'里面元素为"ACTIVE"的行,即删掉列STATUS元素不是ACTIVE的行
df = df[df['STATUS'] == "ACTIVE"]
- (多项条件搜索) 选取GOODREASON列元素为列表['quality', 'cheap']内元素的行
df = df[df['GOODREASON'].isin(['quality', 'cheap'])]
4.对列重命名 及其删除某些列
-
pd 列重命名
B.columns=["chr","feature","count"] -
删除 pandas DataFrame的某一/几列:
1 .方法一:直接
del DF['column-name']
2.方法二:采用drop方法,有下面三种等价的表达式:
1. DF= DF.drop('column_name', 1);
2. DF.drop('column_name',axis=1, inplace=True)
3. DF.drop([DF.columns[[0,1, 3]]], axis=1,inplace=True) # Note: zero indexed
#注意#:
- 凡是会对原数组作出修改并返回一个新数组的,往往都有一个 inplace可选参数。如果手动设定为True(默认为False),那么原数组直接就被替换。也就是说,采用inplace=True之后,原数组名(如2和3情况所示)对应的内存值直接改变;而采用inplace=False之后,原数组名对应的内存值并不改变,需要将新的结果赋给一个新的数组或者覆盖原数组的内存位置(如1情况所示)
3.pd 合并表格

2.Pandas 切片
我们对 DataFrame 进行选择,大抵从这三个层次考虑:行列、区域、单元格。
其对应使用的方法如下:
一. 行,列 --> df[]
df['column_name'] ,df[row_start_index, row_end_index] 选取指定整列数据
二. 区域 --> df.loc[], df.iloc[], df.ix[]
1. loc,在知道列名字的情况下,df.loc[index,column] 选取指定行,列的数据
2. iloc,在column name特别长或者index是时间序列等各种不方便输入的情况下,可以用iloc (i = index), iloc完全用数字来定位 iloc[row_index, column_index]
3. ix 以移除
三. 单元格 --> df.at[], df.iat[]
dfname.at['a', 'A'] #获得单个数据
dfname.iat[0,-2] #获得某个数据
######
import numpy as np
import pandas as pd
index=np.array([2,4,6,8,10])
data=np.array([3,5,7,9,11])
data=pd.DataFrame({"num": data},index=index)
print(data)
data.loc[2,"num"]
dfname._stat_axis.values.tolist() # 行名称
dfname.columns.values.tolist() # 列名称
pandas 切片
切片2
1.Pandas读取tsv文件
TSV文件和CSV的文件的区别是:前者使用\t作为分隔符,后者使用,作为分隔符。read_scv 参数介绍
- 如果已有表头,则可使用header参数:当第二行是列名
- header=-1时(可用于读取无表头CSV文件):
train=pd.read_csv('test.tsv', sep='\t', header=1)
-读入某些列
d = pd.read_csv('your_file_name.csv', usecols=['id', 'age', 'gender'])
或者
d = pd.read_csv('your_file_name.csv')
d = d[['id', 'age', 'gender']]
- 如果已有主键列:
train=pd.read_csv('test.tsv', sep='\t', header=0, index_col='id')
- 保存文件:
df.to_csv('foo.csv')
网友评论