
Pandas
是杰夫呀
记录学习的点点滴滴。
展开
-
Pandas DataFrame 某一列中添加字符串
原数据:目标数据:实现方法:# 添加"Depth"字符串在df的Depth列之前df["newDepth"] =[ 'Depth % i' % i for i in df["Depth"]]原创 2020-07-30 17:12:25 · 7065 阅读 · 5 评论 -
Pandas报错 ParserError:Error tokenizing data.C error:Expected 12 fields in line 407,saw 13.
使用pandas.read_csv(filePath) 方法来读取csv文件时,出现如下错误:ParserError:Error tokenizing data.C error:Expected 12 fields in line 407,saw 13.产生原因:在读取csv文件的第407行数据时,输入的应该是12个字段,但实际却出现了13个字段。解决办法:第一种方法:把该行多出的字段删除。(但由于文件很特殊,行数以万来记,因此一个一个的找出原因再删掉不现实) 第二种方法:通过在read_cs原创 2020-07-28 10:06:14 · 4494 阅读 · 0 评论 -
pandas DataFrame 删除 / 选取含有特定数值的行或列
1. 删除 / 选取某列含有特殊数值的行import pandas as pdimport numpy as np a=np.array([[1,2,3],[4,5,6],[7,8,9]])df1=pd.DataFrame(a,index=['row0','row1','row2'],columns=list('ABC'))print(df1)df2=df1.copy() #删除/选取某列含有特定数值的行#df1=df1[df1['A'].isin([1])]#df1[df1...原创 2020-07-17 13:59:00 · 4837 阅读 · 0 评论 -
Pandas drop_duplicates函数 去除重复项
DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)参数去除特定列下面的重复行。返回 DataFrame 格式的数据。subset : column label or sequence of labels, optional 用来指定特定的列,默认所有列keep : {‘first’, ‘last’, False}, default ‘first’ 删除重复项并保留第一次出现的项inplace : b.原创 2020-07-13 11:19:11 · 1429 阅读 · 0 评论 -
pandas读取文件时,不去掉前面的0,保留原有数据格式
以地理区域.xlsx为例,init_dir = os.path.dirname(os.path.abspath(__file__))df = pd.read_excel(os.path.join(init_dir, '地理区域.xlsx'))假设数据如下:| 父级地理区域名称 | 地理区域名称 | 地区域编号 || | 广州#1 | 01 || 01 | 广州天河区#2 | 0101 |直接使用以上代码原创 2020-06-30 23:37:11 · 5652 阅读 · 0 评论 -
Pandas 对DataFrame的缺失值NA值处理4种方法总结
数据清洗是一项复杂且繁琐的工作,同时也是整个数据分析过程中最为重要的环节。有人说一个分析项目80%的时间都是在清洗数据,这听起来有些匪夷所思,但在实际的工作中确实如此。数据清洗的目的有两个,第一是通过清洗让数据可用。第二是让数据变的更适合进行后续的分析工作。换句话说就是有”脏”数据要洗,干净的数据也要洗。本篇文章将介绍几种简单的使用Python数据清洗DataFrame中缺失值的方法。...原创 2019-11-23 19:10:00 · 25351 阅读 · 0 评论 -
Pandas 将DataFrame字符串日期转化成时间类型日期
由于业务场景的需求,这张表里日期格式与其他表不匹配,而且需要把日期向后推算1天、2天等等。输入(列中数据是object格式):date2019-11-01 19:302019-11-30 19:00# Data columns (total 1 columns):# date 2 non-null object期望输出:列datetime:datetim...原创 2019-11-23 11:12:32 · 36106 阅读 · 0 评论 -
Pandas 处理DataFrame中的inf值
在用DataFrame计算变化率时,例如(今天-昨天) / 昨天恰好为(2-0) / 0时,这些结果数据会变为inf。为了方便后续处理,可以利用numpy,将这些inf值进行替换。1. 将某1列(series格式)中的inf 替换为数值。import numpy as npdf['Col'][np.isinf(df['Col'])] = -12. 将某1列(series格式...原创 2019-11-18 17:18:41 · 33693 阅读 · 5 评论 -
Pandas 根据列的数值选择DataFrame的多行
1.选取等于某个特定值的行记录,用 ==df.loc[df['column_name'] == some_value]2. 选取等于某些的数值的行记录,用 isindf.loc[df['column_name'].isin(some_values)]3. 选取不等于某个特定值的行记录,用 !=df.loc[df['column_name'] != some_val...原创 2019-11-18 16:53:12 · 4565 阅读 · 0 评论 -
Pandas to_csv方法将dataframe转为csv文件
读取文件为dataframe import pandas as pddf = pd.read_csv() 将dataframe转为csv import pandas as pddf.to_csv()参考资料:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_...原创 2019-11-18 14:47:26 · 13875 阅读 · 0 评论 -
Pandas DataFrame显示行和列的数据不全
在print时候,df总是因为数据量过多而显示不完整。解决方法如下:#显示所有列pd.set_option('display.max_columns', None)#显示所有行pd.set_option('display.max_rows', None)#设置value的显示长度为100,默认为50pd.set_option('max_colwidth',100)可以参看官...原创 2019-10-22 12:34:21 · 1292 阅读 · 0 评论 -
Pandas DataFrame中的tuple元素遍历
在用Word2vec计算出词语的相似度之后,得到的DataFrame格式如下:1. 索引(index)为输入的关键词,从第0列开始为相似度最高的词语和它的余弦相似度。2. 这个DataFrame 中每一个元素,比如(通话, 0.21321064233779907)的格式为tuple。输入数据: 0 ...原创 2019-10-22 11:38:30 · 1112 阅读 · 0 评论 -
Pandas Series转为DataFrame
输入(Series格式):# df['col1']0 A1 A2 B3 NaN4 D5 C输出(DataFrame格式):import numpy as npimport pandas as pd# 产生数据df = pd.DataFrame({'col1': ['A', 'A', 'B', np.nan...原创 2019-10-16 09:24:54 · 3891 阅读 · 0 评论 -
Pandas DataFrame按照列的值排序
参考Pandas的官方文档:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sort_values.html输入:col1 col2 col30 A 2 01 A 1 12 B 9 93 NaN ...原创 2019-10-16 00:13:03 · 4974 阅读 · 0 评论 -
Pandas DataFrame中的Unix时间戳转化为通用时间
输入: date price0 1539561600 6452.5716671 1539648000 6596.6183332 1539734400 6596.2761543 1539820800 6568.0407694 1539907200 6487.444167.. ... ...原创 2019-10-15 23:22:13 · 3788 阅读 · 0 评论 -
Pandas 获得 Dataframe 的行数和列数
输入(DataFrame): 0 1 2 3 4 5 6 7 8 9 10 111. 计算行数df.shape[0]或者:len(df)或者:len(df.index)2. 计算列数df.shape[1]或者:len(df.columns)...原创 2019-10-15 16:49:38 · 6888 阅读 · 0 评论 -
Pandas DataFrame 对某一列求和
对DataFrame 对某一列求和输入: index times0 10 1001 20 2002 30 3003 40 400输出:sum_int = 100sum_str = '100200300400'Python 用 sum 函数实现:import pandas as pddt = {'in...原创 2019-10-15 16:07:46 · 25698 阅读 · 0 评论 -
Pandas 将DataFrame中的tuple分割成多列
输入(DataFrame格式): a b0 1 (1, 2)1 2 (3, 4)输出(将tuple分列后的DataFrame格式): a b1 b20 1 1 21 2 3 4Python实现代码:import pandas as pd# 输入df = pd.DataFrame({'a': [1, 2], ...原创 2019-10-15 15:32:39 · 2346 阅读 · 0 评论 -
Python 根据Dataframe的对应列求差值和变化率
输入1(今天)DataFrame格式: code date_time0 10 11001 20 22002 30 33003 40 4400输入2(昨天)DataFrame格式: code date_time0 10 10001 20 25002 50 5000实...原创 2019-10-15 00:09:55 · 6808 阅读 · 0 评论 -
Pandas读取CSV文件read_csv报错FileNotFoundError:File b'.csv' does not exist
前几天读取CSV文件报错,最终发现是代码和文件的工作路径不一致的问题,详情见这篇文章。今天报同样的FileNotFoundError:File b'.csv' does not exist错误,却不是由于路径产生的问题。在对CSV文件修改之后,代码和文件在同一个文件夹下,但是仍然出现读取错误的问题。具体显示是用Excel修改后的CSV文件出现一个蓝色问号,而原始文件则没有这个标识...原创 2019-07-26 13:51:36 · 16407 阅读 · 7 评论 -
Spark中DataFrame与Pandas中DataFrame的区别
目录为何使用 PySpark DataFramePandas DataFrame 数据结构特性Spark DataFrame 数据结构与存储特性使用 Spark DataFrame 优势Spark toPandas 详解Spark与Pandas中的DataFrame的区别为何使用 PySpark DataFrame使用 pandas 进行数据处理,dataframe...原创 2019-08-20 00:24:32 · 9583 阅读 · 1 评论 -
Pandas把dataframe或series转换成list
把dataframe转换为list输入多维dataframe: df = pd.DataFrame({'a':[1,3,5,7,4,5,6,4,7,8,9], 'b':[3,5,6,2,4,6,7,8,7,8,9]})把a列的元素转换成list:# 方法1df['a'].values.tolist()# 方法2df['a'].tolist()把a列中不重复的元素转...原创 2019-08-12 12:25:15 · 202726 阅读 · 8 评论 -
Pandas把dataframe转成array
把Pandas中的dataframe转成numpy中的arraydf=df.values原创 2019-08-12 12:32:17 · 10046 阅读 · 0 评论 -
Pandas将字典dict转为Dataframe的3种方法总结
输入:my_dict = {'i': 1, 'love': 2, 'you': 3}期望输出:my_df 0i 1love 2you 3如果字典里key和value是一一对应的,那么直接输入my_df = pd.DataFrame(my_dict)会报错“ValueError: If using all scalar values, you must p...原创 2019-08-25 18:04:22 · 74149 阅读 · 3 评论 -
Pandas修改DataFrame的列名的2种方法总结
输入: $a $b $c $d $e0 1 2 3 4 5期望的输出: a b c d e0 1 2 3 4 5原数据DataFrame:import pandas as pddf = pd.DataFrame({'$a': [1], '$b': [2], '$c': [3], '$d': [4], '$e'...原创 2019-08-25 20:29:58 · 40898 阅读 · 0 评论 -
Python报错ValueError: arrays must all be same length
输入:d={ 'NUM' : range(3), 'C' : ['c1','c2','c3'], 'D' : ['d1','d2','d3','d4'], 'E' : ['e1','e2','e3'], 'B' : ['b1','b2','b3']}期望功能:把不等长的value输出,形成DataFrame。输入以下代码:import pandas ...原创 2019-09-10 18:38:31 · 46759 阅读 · 16 评论 -
Pandas 报错ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.an
执行数据比较的时候,pandas出现报错:ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().错误意思是:所选的真值不明确,也就是给的值和作比较的值的类型不同。应该是由于将一个值与多个值或一个列表中的值相比较、匹配,导致的问题...原创 2019-09-20 11:48:21 · 69765 阅读 · 0 评论 -
Pandas 删除DataFrame的方法总结
输入数据:import pandas as pddata = { '证券名称': ['格力电器', '视觉中国', '成都银行', '中国联通', '格力电器', '视觉中国', '成都银行', '中国联通'], '摘要': ['证券买入', '证券买入', '证券买入', '证券买入', '证券卖出', '证券卖出', '证券卖出', '证券卖出'], '成交...原创 2019-09-20 17:46:35 · 5199 阅读 · 0 评论 -
Python DataFrame列的除法计算变化率
期望在DataFrame中增加一列,代表的含义是变化率,计算公式是(今天的数据-昨天的数据)/昨天的数据。输入: a b c0 1.0 4.0 5.01 3.0 8.0 45.02 13.0 3.0 67.03 2.0 0.0 34.0期望输出: a b c d0 1....原创 2019-10-08 15:20:43 · 4161 阅读 · 0 评论 -
Pandas读取csv文件报错FileNotFoundError:File b'***.csv' does not exist
出现问题:Python在读取文件时报错File b'test1.csv' does not exist。问题定位:代码或文件其中有一个没有放在默认路径下。读取文件时尽量填写默认环境下的相对路径,而非相对路径。解决方法:把代码和待读取的文件都放在默认路径下,解决!...原创 2019-07-24 10:48:15 · 17146 阅读 · 4 评论