Python数据分析库Pandas (2)

# skipna参数:是否忽略NaN,默认True,如False,有NaN的列统计结果仍未NaN
   # 可以通过索引单独统计一列

# 主要数学计算方法,可用于Series和DataFrame(1)

df = pd.DataFrame({\'key1\':np.arange(10),
                  \'key2\':np.random.rand(10)*10})
print(df)
print(\'-----\')

print(df.count(),\'→ count统计非Na值的数量\n\')
print(df.min(),\'→ min统计最小值\n\',df[\'key2\'].max(),\'→ max统计最大值\n\')
print(df.quantile(q=0.75),\'→ quantile统计分位数,参数q确定位置\n\')
print(df.sum(),\'→ sum求和\n\')
print(df.mean(),\'→ mean求平均值\n\')
print(df.median(),\'→ median求算数中位数,50%分位数\n\')
print(df.std(),\'\n\',df.var(),\'→ std,var分别求标准差,方差\n\')
print(df.skew(),\'→ skew样本的偏度\n\')
print(df.kurt(),\'→ kurt样本的峰度\n\')
 

# 主要数学计算方法,可用于Series和DataFrame(2)

df[\'key1\'].cumsum()    单列的累计和 

df[\'key1\'].cumprod()   单列累计积 

print(df.cummax(),\'\n\',df.cummin(),\'→ cummax,cummin分别求累计最大值,累计最小值\n\')

# 唯一值:.unique()

解决问题:colums 中有重复的值,两个一样的列,那么取到唯一 个      重新整理成为一个DataFrame表格

## 值计数:.value_counts()

解决问题: 得到该数据  出现的频率次数   a:2    b  3    生成一个新的 Series    括号内可写排序:sort = False   or  True

# 成员资格:.isin()

解决问题: 一个DataFrame 显示数据,我就想知道 里面有没有我指定的一个 50    有就是对应位置显示 True,没有就是False

《《------------------------------------------------------------------------------------------------------》》

pandas 文本数据处理

一般处理 :

1.自动排除为np的值   NaN  

2.查看指定  文本数据字符的个数     .str.count()

3.修改大小写    .str.upper()   .str.lower() 

4.字符长度  .str.leng()  

5.开始字符是哪一个   .str.startwith(\'\')

6.结束字符是哪一个  .str.endwith(\'\')  

print(s.str.lower(),\'→ lower小写\n\')
print(s.str.upper(),\'→ upper大写\n\')
print(s.str.len(),\'→ len字符长度\n\')
print(s.str.startswith(\'b\'),\'→ 判断起始是否为a\n\')
print(s.str.endswith(\'3\'),\'→ 判断结束是否为3\n\')

df.columns.str.upper()   修改数据列

去空格
print(s.str.strip())  # 去除字符串中的空格
print(s.str.lstrip())  # 去除字符串中的左空格
print(s.str.rstrip())  # 去除字符串中的右空格

替换字符中的空格  

str.replace(\' \',\'\',n=1)     把空格替换为  空字符    

不写第三个参数 ,那么就是 全部替换 ,写了就是指定替换几个

# 字符串常用方法(4) - split、rsplit

print(s.str.split(\',\').str[0])
print(s.str.split(\',\').str.get(1))

# 可以使用get或[]符号访问拆分列表中的元素

# 可以使用expand可以轻松扩展此操作以返回DataFrame
# n参数限制分割数
# rsplit类似于split,反向工作,即从字符串的末尾到字符串的开头
print(s.str.split(\',\', expand=True))
print(s.str.split(\',\', expand=True, n = 1))
print(s.str.rsplit(\',\', expand=True, n = 1))

# 字符串索引

print(s.str[0])  # 取第一个字符串
print(s.str[:2])  # 取前两个字符串
print(df[\'key2\'].str[0])
# str之后和字符串本身索引方式相同

 

DataFrame 合并

     .merge(data1,data2,on=\'key\')   根据key列为索引合并,看下两个是否共有  一样的key ,有就保留

   @合并有有一个 分类 :  交集  和  并集      how=\'\' /inner、outer   、left、right

        交集:解释就是 原有的数据合并没有对应上,那么就会不要,只保留 共有的

        并集:解释就是  合并后不管你有没有,都会保留,只不过有的就是 保留原有数据,没有的 NaN 

   然后就是  设置参考键: on=‘’    设置根据on里面的值,两两对比,如果一样就合并   

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zggddj.html