首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Python】这25个Pandas高频实用技巧,不得不服!

有很多种实现的途径,我最喜欢的方式是传一个字典给DataFrame constructor,其中字典中的keys为列名,values为列的取值。...3更改列名 我们来看一下刚才我们创建的示例DataFrame: df 我更喜欢在选取pandas列的时候使用点(.),但是这对那么列名中含有空格的列不会生效。让我们来修复这个问题。...你也可以使用这个函数来选取数据类型为object的列: drinks.select_dtypes(include='object').head() 你还可以选取多种数据类型,只需要传递一个列表即可:...第二步是将所有实际上为类别变量的object列转换成类别变量,可以调用dtypes参数: dtypes = {'continent':'category'} smaller_drinks = pd.read_csv...按行从多个文件中构建DataFrame 假设你的数据集分化为多个文件,但是你需要将这些数据集读到一个DataFrame中。 举例来说,我有一些关于股票的小数聚集,每个数据集为单天的CSV文件。

6.6K50

整理了25个Pandas实用技巧(上)

有很多种实现的途径,我最喜欢的方式是传一个字典给DataFrame constructor,其中字典中的keys为列名,values为列的取值。 ?...将字符型转换为数值型 让我们来创建另一个示例DataFrame: ? 这些数字实际上储存为字符型,导致其数据类型为object: ? 为了对这些列进行数学运算,我们需要将数据类型转换成数值型。...第二步是将所有实际上为类别变量的object列转换成类别变量,可以调用dtypes参数: ?...按行从多个文件中构建DataFrame 假设你的数据集分化为多个文件,但是你需要将这些数据集读到一个DataFrame中。 举例来说,我有一些关于股票的小数聚集,每个数据集为单天的CSV文件。...你可以将每个CSV文件读取成DataFrame,将它们结合起来,然后再删除原来的DataFrame,但是这样会多占用内存且需要许多代码 更好的方式为使用内置的glob模块。

2.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Pandas内存优化和数据加速读取

    内存优化 一个现象是,在使用pandas进行数据处理的时候,加载大的数据或占用很大的内存和时间,甚至有时候发现文件在本地明明不大,但是用pandas以DataFrame形式加载内存中的时候会占用非常高的内存...OK,这就是有时候DataFrame内存占用过高的原因。 所以这里有个简单的思路是:我依次去遍历数据的所有列,检查每一列的数值范围包含在哪个最近的子类区间。...你可以在此处执行的一项非常有用的操作是预处理,然后将数据存储在已处理的表单中,以便在需要时使用。但是,如何以正确的格式存储数据而无需再次重新处理?...如果你要另存为CSV,则只会丢失datetimes对象,并且在再次访问时必须重新处理它。...Pandas的 HDFStore 类允许你将DataFrame存储在HDF5文件中,以便可以有效地访问它,同时仍保留列类型和其他元数据。

    2.7K20

    整理了 25 个 Pandas 实用技巧,拿走不谢!

    有很多种实现的途径,我最喜欢的方式是传一个字典给DataFrame constructor,其中字典中的keys为列名,values为列的取值。 ?...这包含了int和float型的列。 你也可以使用这个函数来选取数据类型为object的列: ? 你还可以选取多种数据类型,只需要传递一个列表即可: ? 你还可以用来排除特定的数据类型: ?...将字符型转换为数值型 让我们来创建另一个示例DataFrame: ? 这些数字实际上储存为字符型,导致其数据类型为object: ? 为了对这些列进行数学运算,我们需要将数据类型转换成数值型。...第二步是将所有实际上为类别变量的object列转换成类别变量,可以调用dtypes参数: ?...按行从多个文件中构建DataFrame 假设你的数据集分化为多个文件,但是你需要将这些数据集读到一个DataFrame中。 举例来说,我有一些关于股票的小数聚集,每个数据集为单天的CSV文件。

    3.2K10

    基于Pandas的DataFrame、Series对象的apply方法

    查看变量数据类型.png 上图和代码结合进行理解,Series对象有str.split方法,方法中第一个参数为分隔符,默认为空格。...Series对象的str.split方法的返回值数据类型为Series,Series中的每一个值的数据类型为list。...2种不同方法对比.png 作者一直以为Series对象的map和apply方法是一样的,实际上是不同的。 所以,Series对象映射为DataFrame对象的时候必须得用apply方法。...Series对象的apply方法是指对其中的每个元素进行映射。 pd.Series方法将变量area_split_series的中list元素转为Series。...第1个参数的数据类型是函数对象,是将抽出的行或者列作为Series对象,可以利用Series对象的方法做聚合运算。 第2 个参数为关键字参数axis,数据类型为整型,默认为0。

    3.7K50

    【Python环境】Python中的结构化数据分析利器-Pandas简介

    二者与Python基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而Array和Series中则只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。...从列表的字典构建DataFrame,其中嵌套的每个列表(List)代表的是一个列,字典的名字则是列标签。这里要注意的是每个列表中的元素数量应该相同。...从CSV中读取数据: df = pd.read_csv('foo.csv') R中的对应函数: df = read.csv('foo.csv') 将DataFrame写入CSV: df.to_csv('...df[0:3]df[0] 下标索引选取的是DataFrame的记录,与List相同DataFrame的下标也是从0开始,区间索引的话,为一个左闭右开的区间,即[0:3]选取的为1-3三条记录。...,以C为列标签将D列的值汇总求和pd.crosstab(rows = ['A', 'B'], cols = ['C'], values = 'D')#以A、B为行标签,以C为列标签将D列的值汇总求和

    15.1K100

    《Pandas 1.x Cookbook · 第二版》第03章 创建和持久化DataFrame

    将DataFrame写入CSV文件: 使用.to_csv方法将DataFrame写入CSV文件: >>> beatles first last birth 0 Paul...process(chunk) 因为CSV文件不保存数据类型,Pandas需要推断每列的数据类型是什么。如果一列的值都是整数,并且没有缺失值,则Pandas将其认定为int64。...如果一列是数值类型,但不是整数,或存在缺失值,Pandas使用的是float64。这两种数据类型占用的内存比较大。...可以在使用read_csv时使用parse_dates加载文件,另一种方法是加载文件后用to_datetime方法解析: >>> autos= pd.read_csv( ......不包含列和行索引的值; table —— 将schema映射到DataFrame的纲要,data映射为字典的列表。

    1.3K30

    Pandas入门2

    image.png 5.2 DataFrame相加 对于DataFrame,对齐会同时发生在行和列上,两个DataFrame对象相加后,其索引和列会取并集,缺省值用NaN。...image.png 5.5 排序和排名 使用DataFrame对象的sort_valuse方法,需要两个参数:第1个参数by是根据哪一行或列排序; 第2个参数axis为0或1,默认为0,0为按列排序,...将数据列 Mjob 和 Fjob中所有数据实现首字母大写 df[['Mjob','Fjob']].applymap(str.title) Step 6....经过第6步之后,为什么原来的dataframe数据中Mjob和Fjob列的数据仍然是小写的?...方法的返回值的数据类型是字符串。 另外,其实time模块中有strftime方法,需要1个参数,参数为字符串格式。可以将现在的时间转换为字符串。 ?

    4.2K20

    python数据分析——数据预处理

    但是,在pandas库中有一个describe()函数,它用于生成数值列的统计摘要。...DataFrame.astype()函数将DataFrame中的某一列或多列转换为指定的数据类型,或将整个DataFrame转换为指定的数据类型。...lower() lower()函数是Python中的一个内置函数,用于将字符串中的所有大写字母转换为小写字母,并返回转换后的字符串。 语法: str.lower() 其中,str是要转换的字符串。...upper upper()是Python中的一个字符串方法,用于将字符串中的所有小写字母转换为大写字母。其语法如下: str.upper() 这里的str是要进行转换的字符串。...其语法如下: list.insert(index, element) 这里的list是要进行插入操作的列表,index是要插入元素的索引位置(从0开始),element是要插入的元素。

    15310

    2000字详解 当Pandas遇上超大规模的数据集该如何处理呢?

    chunksize参数设置为100万,每次分100万来分批读取,代码如下 # read the large csv file with specified chunksize df_chunk = pd.read_csv...(r'data.csv', chunksize=1000000) 这时我们得到的df_chunk并非是一个DataFrame对象,而是一个可迭代的对象。...) # 然后将列表concat到一块儿 df_concat = pd.concat(chunk_list) 将不重要的列都去除掉 当然我们还可以进一步将不重要的列都给去除掉,例如某一列当中存在较大比例的空值...,内存相当于是仓库,而数据则相当于是货物,货物在入仓库之前呢需要将其装入箱子当中,现在有着大、中、小三种箱子, 现在Pandas在读取数据的时候是将这些数据无论其类型,都是装到大箱子当中去,因此会在很快的时间里仓库也就是内存就满了...= object: col_min = df[col].min() col_max = df[col].max() if str(

    32230

    Pandas 25 式

    这个 DataFrame 里的数字其实是以字符串形式保存的,因此,列类型是 object。 ?...第二步是把包含类别型数据的 object 列转换为 Category 数据类型,通过指定 dtype 参数实现。 ?...用多个文件建立 DataFrame ~ 按列 上个技巧按行合并数据集,但是如果多个文件包含不同的列,该怎么办? 本例将 drinks 数据集分为了两个 CSV 文件,每个文件都包含 3 列。 ?...把字符串分割为多列 创建一个 DataFrame 示例。 ? 把姓名列分为姓与名两列,用 str.split() 方法,按空格分割,并用 expand 关键字,生成一个新的 DataFrame。 ?...年龄列有 1 位小数,票价列有 4 位小数,如何将这两列显示的小数位数标准化? 用以下代码让这两列只显示 2 位小数。 ? 第一个参数是要设置的选项名称,第二个参数是 Python 的字符串格式。

    8.4K00

    Python数据分析实战之数据获取三大招

    header参数可以是一个list例如:[0,1,3],这个list表示将文件中的这些行作为列标题(意味着每一列有多个标题),介于中间的行将被忽略掉(例如本例中的2;本例中的数据1,2,4行将被作为多级标题出现...low_memory : boolean, default True 分块加载到内存,再低内存消耗中解析。但是可能出现类型混淆。确保类型不被混淆需要设置为False。.../test.csv', index_col=0) ---- 坑2:原本日期格式的列,保存到csv文件后仍为日期格式。但再次读取文件时将以字符串的格式读取到DataFrame。...解决方案: 1, pd.read_csv('./test.csv', parse_dates=[3]) 将特定的日期列解析为日期格式; 2, 先使用默认值file = pd.read_csv('....encoding : str, optional 在读取Python 2字符串时使用什么编码。

    6.6K30

    数据分析篇 | PyCon 大咖亲传 pandas 25 式,长文建议收藏

    这个 DataFrame 里的数字其实是以字符串形式保存的,因此,列类型是 object。 ?...第二步是把包含类别型数据的 object 列转换为 Category 数据类型,通过指定 dtype 参数实现。 ?...用多个文件建立 DataFrame ~ 按列 上个技巧按行合并数据集,但是如果多个文件包含不同的列,该怎么办? 本例将 drinks 数据集分为了两个 CSV 文件,每个文件都包含 3 列。 ?...把字符串分割为多列 创建一个 DataFrame 示例。 ? 把姓名列分为姓与名两列,用 str.split() 方法,按空格分割,并用 expand 关键字,生成一个新的 DataFrame。 ?...年龄列有 1 位小数,票价列有 4 位小数,如何将这两列显示的小数位数标准化? 用以下代码让这两列只显示 2 位小数。 ? 第一个参数是要设置的选项名称,第二个参数是 Python 的字符串格式。

    7.2K20

    Python数据分析实战之数据获取三大招

    header参数可以是一个list例如:[0,1,3],这个list表示将文件中的这些行作为列标题(意味着每一列有多个标题),介于中间的行将被忽略掉(例如本例中的2;本例中的数据1,2,4行将被作为多级标题出现...low_memory : boolean, default True 分块加载到内存,再低内存消耗中解析。但是可能出现类型混淆。确保类型不被混淆需要设置为False。.../test.csv', index_col=0) ---- 坑2:原本日期格式的列,保存到csv文件后仍为日期格式。但再次读取文件时将以字符串的格式读取到DataFrame。...解决方案: 1, pd.read_csv('./test.csv', parse_dates=[3]) 将特定的日期列解析为日期格式; 2, 先使用默认值file = pd.read_csv('....encoding : str, optional 在读取Python 2字符串时使用什么编码。

    6.1K20
    领券