pandas
1、pandas数据的存储相对来说比较简单,它就只有两种非常重要的数据类型,一种叫series,一种叫dataframe
series是指那些一维的数据,dataframe是指那些二维的数据。也就是说任何一个datafarame其实是好多个series罗列出来的
2、读取csv数据
不只可以用来读excel,如果普通的文件想读成列形式的也可以用它
train_df = pd.read_csv('train.csv')train_df.head()
默认是header=0,0,ji 表示第一行为标题行
header=None,即指明原始文件数据没有列索引,这样read_csv会自动加上列索引,除非你给定列索引的名字
例如,这是数据集
当train = pd.read_csv(train_path),train是
此时,train[0]就是第一列,train[1]就是第2列
当train = pd.read_csv(train_path, header=0),train是
train = pd.read_csv(train_path,header=None), train是
还可以在pd.read_csv()的时候,规定列名
train = pd.read_csv(train_path,names=COLUMN_NAMES,header=0)
COLUMN_NAMES = ['SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth', 'Species']train = pd.read_csv(train_path,names=COLUMN_NAMES,header=0)
当header=0表示第一行为标题行,又规定了names的时候,标题行就被覆盖了
head()
.head()
会直接输出数据(默认是前5行)
print(X.head()) 和 print(X)的结果是一样的
3. 查看csv数据大小
train_df.shape
4. 读取csv数据转为numpy 数组
import pandas as pdtrain = pd.read_csv('train.csv')train = train.values.tolist()
5、pd.Series(data,index)
pd.DataFrame(data,index,columns)
6、做数据科学的时候,往往把feature放在列上,每一列叫做一个feature
每一行叫做一个observation
像不同的列记录所有人的身高、所有人的体重,所有人的收入,而每一行是一个不同的人
并且如果直接引用的话,会默认选择列
若要选择行 df.loc('A')
7. 行列选取
①行(列)选取:df[]。
单维度选取,这种情况一次只能选取行或者列
iris数据集
选取行
#选取0-10行df = pd.read_csv('dataset/iris.data', header=None)y = df[0:10]print(y)#选取第3行y = df[3:4]print(y)
注意如果写作y = df[3],这是在选第3列
选取列
#选取3列df = pd.read_csv('dataset/iris.data', header=None)y = df[3]print(y)#选取第2列,第4列y = df[[2,4]]print(y)#没法一次选取多个列
②区域选取(多维选取):df.loc[],df.iloc[],df.ix[]。
这种方式可以同时为多个维度设置筛选条件。
pandas以类似字典的方式来获取某一列的值,比如df[‘A’],这会得到df的A列。如果我们对某一行感兴趣呢?这个时候有两种方法,一种是iloc方法,另一种方法是loc方法。loc是指location的意思,iloc中的i是指integer
loc是根据index来索引,比如下边的df定义了一个index,那么loc就根据这个index来索引对应的行。
iloc并不是根据index来索引,而是根据行号来索引,行号从0开始,逐次加1。
8、添加列
直接用名称赋值即可
删除列df.drop('new',axis)
axis=0是指行, axis=1是指列的维度
但是这样删除只是返回一个临时的结果,实际df中并没有删除列,这是相当于一个double check的机制。可以不在原数据进行操作,df2=df.drop('new',axis)
如果的确要删的话df.drop('new',axis=1,inplace= True)
9、选择满足相关条件的数据
选择W列的值大于0的数据
选择W列的值大于0的数据的Y的数据
选择W列的值大于0并且Y列的值大于1的数据
10、将另一列的数据当做行名
df.set_index('state')
同样,如果确定要修改,还需要df.set_index('state',inplace=True)
11、将数据转化成DataFrame
12、分组计算
平均值
最大值
标准差 //standard deviation
能计算的都给你计算一遍
13、解决dataframe输出省略号的问题
pd.set_option('display.max_rows',1000) # 具体的行数或列数可自行设置pd.set_option('display.max_columns',1000)
14.unique() 查看某列不同值的个数
查看多少张图片有标注
print(train_df['image_id'].unique())
15. value_counts() 统计某列不同值分别有几个
在pandas中,value_counts常用于数据表的计数及排序,它可以用来查看数据表中,指定列里有多少个不同的数据值,并计算每个不同值有在该列中的个数,同时还能根据需要进行排序。
print(train_df['image_id'].value_counts())
画pandas的值的图要用sns.plot()
16. apply()
pandas 的
apply()
函数可以作用于Series
或者整个DataFrame
功能是自动遍历整个
Series
或者DataFrame
, 对每一个元素运行指定的函数。17. 拆分某一列为好几列
series内置函数str.split
train_df[['x','y','w','h']] = train_df['bbox'].str[1:-1].str.split(',', expand=True).astype(np.float)
18. str转int
data[['m']] = data[['m']].astype(int)
700字范文,内容丰富有趣,生活中的好帮手!