★Pandas 零碎知识
1 修改属性
1.1 修改1列的类型属性:
df['总金额'] = pd.to_numeric(df['总金额']) #转变dataframe的1列为数值型
1.2 多列设为数值型:(使用DataFrame.apply
处理每一列)
df[['col2','col3']] = df[['col2','col3']].apply(pd.to_numeric)
多列格式指定为字符串型式:
df[['首封', '终封']] = df[['首封', '终封']].astype(str)
打开文件时,指定某列为字符型:
df = pd.DataFrame(pd.read_excel('短线宝.xls',converters={'代码':str}))
指定多列为字符型:
df = pd.DataFrame(pd.read_excel('短线宝.xls',converters={'代码':str,'上市天数':str}))
将所有数据转换为字符串:
dataframe=dataframe.astype(str)
将多列分别指定类型:
data = data.astype({'outcome':'float','age':'int'})
1.3 整个DataFrame设为数值型:
df.apply(pd.to_numeric, errors='ignore') #可以转换为数字类型的列将被转换,而不能(例如,它们包含非数字字符串或日期)的列将被单独保留。
2 修改某列数值:
df['流通市值'] = round(df['流通市值']/100000000,2)
3 dataframe数据筛选后求和:
df1 = df[(df['age']>10) & (df['age']<30)]['profit'].sum()
4 直接指定各列名称:
df.columns = ['股票简称','涨幅%','股票代码','现价'...]
5 改变列顺序:
order = ['股票代码','股票简称',....'] df = df[order]
6 删除指定多列:
x = [4,7,10,11,12,13,15] #列的序号,从0开始 df.drop(df.columns[x], axis=1, inplace=True)
7 总行数、总列数:
Rows = df.shape[0] #行数Cols = df.shape[1] #列数
8 求某列最大值:
df_max = max(df['连板'])
9 去除1列中的空格:
df['流通市值'] = df['流通市值'].str.strip(); #去除1列中的空格
10 将list类型转换为string类型:
text= ' '.join(map(str,list))
11 数值修改及替换
Python中使用replace函数实现数据替换。
数据表中city字段上海存在两种写法,分别为shanghai和SH。
我们使用replace函数对SH进行替换。
df['city'].replace('SH', 'shanghai')
12 数据表合并
首先是对不同的数据表进行合并,我们这里创建一个新的数据表df1,并将df和df1两个数据表进行合并。
在Python中可以通过merge函数一次性实现。
下面建立df1数据表,用于和df数据表进行合并。
使用merge函数对两个数据表进行合并,合并的方式为inner,将两个数据表中共有的数据匹配到一起生成新的数据表。并命名为df_inner。
13 设置索引列
完成数据表的合并后,我们对df_inner数据表设置索引列,索引列的功能很多,可以进行数据提取,汇总,也可以进行数据筛选等。
设置索引的函数为set_index.
14 删除某列包含特定字符的行
(为防止该列某行为空值而报错,应先填充,再一并删除)
#先填充空值行,为方便一并删除,填上'STST' df['名称'].isnull().value_counts() #先查找 df['名称'] = df['名称'].fillna('STST') #再填充
#再去除STdf_ST = df[df['名称'].str.contains("ST")] #含有特定字符的行 df = df[-df['名称'].str.contains("ST")] #去除特定字符的行以后的新数据
删除某列的特定字符串:
df['短线主题'] = df['短线主题'].str.replace('概念','')
15 向DataFrame添加数据
df = df.append(df1) #添加
16 统计一共有多少种
con_num = len(set(df['概念板块'])) #统计“概念板块”这1列一共有多少种概念。
17 设备索引字段
df = df.set_index('member_id')
18 两列合并,且添加分隔符
df['概念'] = df['概念板块'].str.cat(df['所属概念'],sep=';')
多列合并:
df['address'] = df['country']+df['province']+df['city']
如果某一列是非str类型的数据,那么我们需要用到map(str)将那一列数据类型做转换:
df["newColumn"] = df["age"].map(str) + df["phone"] + df["address”]
19 从一个Dataframe中减去一部分
df3 = df1.drop(labels=df2.axes[0]) #df2是df1的子集
20 指定列去重
df = df.drop_duplicates(['板块'])
21 一列合并为一个文本
text= ("".join(i for i in df['所属概念']))
22 去掉列首、尾数字
#去掉首位数字——只去掉1位 df['涨停原因'] = df['涨停原因'].str.replace('^[0-9]','') #去掉末位数字 df['涨停原因'] = df['涨停原因'].str.replace('[0-9]$','')
★Pandas 零碎知识的更多相关文章
- 【Python】 零碎知识积累 II
[Python] 零碎知识积累 II ■ 函数的参数默认值在函数定义时确定并保存在内存中,调用函数时不会在内存中新开辟一块空间然后用参数默认值重新赋值,而是单纯地引用这个参数原来的地址.这就带来了一个 ...
- 【Python】 零碎知识积累 I
大概也是出于初高中时学化学,积累各种反应和物质的习惯,还有大学学各种外语时一看见不认识的词就马上记下来的习惯,形成了一种能记一点是一点的零碎知识记录的癖好.这篇文章就是专门拿来记录这些零碎知识的,没事 ...
- Python数据分析与挖掘所需的Pandas常用知识
Python数据分析与挖掘所需的Pandas常用知识 前言Pandas基于两种数据类型:series与dataframe.一个series是一个一维的数据类型,其中每一个元素都有一个标签.series ...
- php获取服务器信息常用方法(零碎知识记忆)
突然整理下零碎小知识.......加深下印象: $info = array( '操作系统'=>PHP_OS, '运行环境'=>$_SERVER["SERVER_SOFTWARE& ...
- Pandas基础知识图谱
所有内容整理自<利用Python进行数据分析>,使用MindMaster Pro 7.3制作,emmx格式,源文件已经上传Github,需要的同学转左上角自行下载或者右击保存图片.该图谱只 ...
- Spring零碎知识复习
自学了Spring也有一段时间了,多多少少掌握了一些Spring的知识,现在手上也没有很多的项目练手,就将就着把这些学到的东西先收集起来,方便日后用到的时候没地方找. 1.spring的国际化 主要是 ...
- 有关Spring注解@xxx的零碎知识
在Java的Spring开发中经常使用一些注解,例如 @XXX 等等,在网上看到收集整理碎片知识,便于懒人计划^=^... 过去,Spring使用的Java Bean对象必须在配置文件[一般为a ...
- 第二节 pandas 基础知识
pandas 两种数据结构 Series和DataFrame 一 Series 一种类似与一维数组的对象 values:一组数据(ndarray类型) index:相关的数据索引标签 1.1 se ...
- Pandas基础知识(二)
Pandas的索引对象 index的对象是不可以修改的如执行index[1] = 'f',会报错"Index does not support mutable operations" ...
随机推荐
- linux下批量杀死进程
ps aux|grep python|grep -v grep|cut -c 9-15|xargs kill -15 管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入.下面 ...
- TensorFlow学习入门
学习了基本的神经网络知识后,要使用框架了,这样才能出来更加复杂的情况,更快的开发出模型. 首先安装后,按照官网写了一个例子,但是又好多不懂,但只是第一步, 看这段代码,其实给你提供了很多学习tf的线索 ...
- 进程池原理及效率测试Pool
为什么会有进程池的概念? 当我们开启50个进程让他们都将100这个数减1次减到50,你会发现特别慢! 效率问题,原因: 1,开辟内存空间.因为每开启一个进程,都会开启一个属于这个进程池的内存空间,因为 ...
- js运用4
---恢复内容开始--- 1.函数 关键字function 复习 var 是js的关键字,用于声明变量,声明在内存模块完成,定义(=)是在执行模块完成. var可以在内存模块提前(js代码执行 ...
- python全栈开发 * 进程池,线程理论 ,threading模块 * 180727
一.进程池 (同步 异步 返回值) 缺点: 开启进程慢 几个CPU就能同时运行几个程序 进程的个数不是无线开启的 应用: 100个任务 进程池 如果必须用多个进程 且是高计算型 没有IO型的程序 希望 ...
- To be better —msup荣获平安科技“2018年度优秀合作伙伴”称号
2018年12月4日,平安科技在深圳平安金融中心举办了“2018年平安科技优秀培训合作伙伴交流会”,msup收到了邀请参与此次评选,并从80余家合作伙伴中脱颖而出,在交付量.满意度.师资内容.服务水准 ...
- 将lits集合转化为树状结构
一,bean的类型: public class DeptListRES { /** * 子节点 */ private List<DeptListRES> children; private ...
- jenkins使用笔记
jenkins动态在构建的时候给脚本传递参数 1.任务 >General > 参数化构建过程 >选项参数 2.把变量传递给shell脚本 3.构建的时候给参数赋值 4.shell脚 ...
- (转载)Java Map中的Value值如何做到可以为任意类型的值
转载地址:http://www.importnew.com/15556.html 如有侵权,请联系作者及时删除. 搬到我的博客来,有空细细品味,把玩. 本文由 ImportNew - shut ...
- 身份证运算符 is 和 is not(检查两个数据在内存当中是否是同一个值) | 逻辑运算符 and or not | 数据类型的判断 isinstance
# ###身份证运算符 is 和 is not(检查两个数据在内存当中是否是同一个值) var1 = 6 var2 = 6 print(id(var1),id(var2)) var1 = " ...