数据查询
df.set_index('索引列',inplace=True)
设置索引为指定列
inplace=Ture
将修改作用于原对象,默认不修改,值为False
loc
语法规则:df.loc[行,列]
行和列的取值都必须为标签,可以为单个标签、标签列表、也可以为标签范围,使用开始标签:结束标签
实现。
也可以使用布尔索引查询,例如:df.loc[df['标签']<条件,:]
因为里面条件查询出的结果为一个布尔型的列表,满足条件最后则会输出。多个条件则每一个条件使用括号括起来且用&
连接。
新增数据列
-
直接赋值、
对原有列直接赋值,修改,需要相同长度。
.str
转为字符串类型.astype('数据类型')
转为指定类型添加新列,直接使用赋值,会自动添加到表中
例:
df.loc[:,"添加的列名"] = 等长度的DataFarme对象,应该列表也可以
-
df.apply
语法规则
apply(python func) #调用python函数(Series调用)
将Series对象逐个作为参数调用python函数,返回值会直接赋值给原变量
apply(numpy ufunc) #调用numpy通用函数、对象整个传入
比如numpy的sum函数,需要将sum用引号括起来,否则会被当做python函数,逐一传入。
axis属性(**DataFrame调用**)
0:对列进行计算,竖着的
1:对行进行计算,横着的
其他对象都可以调用方法
GroupBy.apply()
Resample.apply()
Rolling.apply()
Expanding.apply()
**重要用法**
和groupby函数一起使用
`df["标签"].value_counts() #计数`
**GroupBy.apply(function)**
Pandas的GroupBy遵从split、apply、combine模式
function的第一个参数是dataframe
function的返回结果,可是DataFrame、series、单个值,甚至和输入dataframe完全没关系
数据分组后是可以遍历的,而apply就相当于遍历这些分组,返回了一个结果,形成一个新的表
-
df.assign方法
可以同时添加多个新列
df.assign( 列名1 = lambda x : x["列名"]+1, 列名2 = lambda x : x["列名"]+1
-
按条件选择分组分别赋值
按条件选择数据,然后对这部分数据直接赋值,首先需要创建一个空列,当我们选择满足条件的行的时候就对新列进行赋值操作。
数据读取与保存
pd.read_XXX(“路径”,skiprows=从第几行开始读) #读取指定格式XXX文件
df.to_XXX(“路径”,index=指定索引) #保存为XXX类型文件