# skipna参数:是否忽略NaN,默认True,如False,有NaN的列统计结果仍未NaN
# 可以通过索引单独统计一列
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里面的值,两两对比,如果一样就合并