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

直观地解释和可视化每个复杂DataFrame操作

大多数数据科学家可能会赞扬Pandas进行数据准备能力,但许多人可能无法利用所有这些能力。...包含转换为两一列用于变量(名称),另一列用于(变量中包含数字)。 ? 结果是ID(a,b,c)和(B,C)及其对应每种组合,以列表格式组织。...要记住:从外观上看,堆栈采用表二维性并将堆栈为多级索引。 Unstack 取消堆叠获取多索引DataFrame并对其进行堆叠,指定级别的索引转换为具有相应DataFrame。...尽管可以通过axis参数设置为1使用concat进行列式联接,但是使用联接 会更容易。 请注意,concat是pandas函数,而不是DataFrame之一。...因此,它接受要连接DataFrame列表。 如果一个DataFrame另一列未包含,默认情况下包含该,缺失列为NaN。

13.3K20

通宵翻译Pandas官方文档,写了这份Excel万字肝货操作!

Series 序列是表示 DataFrame 一列数据结构。使用序列类似于引用电子表格。 4. Index 每个 DataFrame 和 Series 都有一个索引,它们是数据行上标签。...在 Pandas 中,索引可以设置为一个(或多个)唯一,这就像在工作表中有一列用作行标识符一样。大多数电子表格不同,这些索引实际上可用于引用行。...pandas 通过在 DataFrame 中指定单个系列提供矢量化操作。可以以相同方式分配DataFrame.drop() 方法从 DataFrame 中删除一列。...If/then逻辑 假设我们想要根据 total_bill 是小于还是大于 10 美元,创建一个具有低和高。 在Excel电子表格中,可以使用条件公式进行逻辑比较。...VLOOKUP 相比,merge 有许多优点: 查找不需要是查找表一列; 如果匹配多行,则每个匹配都会有一行,而不仅仅是第一行; 它将包括查找表中所有,而不仅仅是单个指定; 它支持更复杂连接操作

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

Pandas图鉴(三):DataFrames

df.shape返回行和数量。 df.info()总结了所有相关信息 还可以一个或几个设置为索引。...NumPy 数组和 Pandas DataFrame都没有这样做。另一种方法(如果你事先知道行数量)是用类似 DataFrame(np.zeros) 东西来手动预分配内存。...把这些列当作独立变量操作,例如,df.population /= 10**6,人口以百万为单位存储,下面的命令创建了一个,称为 "density",由现有计算得出: 此外,你甚至可以对来自不同...例如,插入一列总是在原表进行,而插入一行总是会产生一个DataFrame,如下图所示: 删除也需要注意,除了del df['D']能起作用,而del df.D不能起作用(在Python层面的限制...首先,你可以只用一个名字指定要分组,如下图所示: 如果没有as_index=False,Pandas会把进行分组一列作为索引

35020

20个能够有效提高 Pandas数据分析效率常用函数,附带解释和例子

上述代码中,我们通过指定采样数量 n 进行随机选取。此外,也可以通过指定采样比例 frac 随机选取数据。当 frac=0.5时,随机返回一般数据。...对于行标签,如果我们不分配任何特定索引,pandas默认创建整数索引。因此,行标签是从0开始向上整数。iloc一起使用行位置也是从0开始整数。...我们有三个不同城市,在不同日子进行测量。我们决定将这些日子表示为行。还将有一列显示测量值。...Merge Merge()根据共同组合dataframe。考虑以下两个数据: ? 我们可以基于共同合并它们。设置合并条件参数是“on”参数。 ?...df1和df2是基于column_a共同进行合并,merge函数how参数允许以不同方式组合dataframe,如:“inner”、“outer”、“left”、“right”等。

5.5K30

没错,这篇文章教你妙用Pandas轻松处理大规模数据

比较于 Numpy,Pandas 使用一个二维数据结构 DataFrame 表示表格式数据, 可以存储混合数据结构,同时使用 NaN 表示缺失数据,而不用像 Numpy 一样要手工处理缺失数据...我们将使用 DataFrame.select_dtypes 选择整数列,然后优化这些包含类型,并比较优化前后内存使用情况。...当我们转换为 category dtype 时,Pandas 使用了最省空间 int 子类型,表示一列所有的唯一。 想要知道我们可以怎样使用这种类型减少内存使用量。...请注意,这一列可能代表我们最好情况之一:一个具有 172,000 个项目的,只有 7 个唯一所有进行同样操作,这听起来很吸引人,但使我们要注意权衡。...我们编写一个循环程序,遍历每个对象,检查其唯一数量是否小于 50%。如果是,那么我们就将这一列转换为 category 类型。

3.6K40

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

这里要注意是,字符串里字符数量必须 DataFrame 数一致。 3. 重命名列 ? 用点(.)选择 pandas写起来比较容易,但列名里有空格,就没法这样操作了。...rename()方法改列名是最灵活方式,它参数是字典,字典 Key 是原列名,列名,还可以指定轴向(axis)。 ? 这种方式优点是可以重命名任意数量一列、多所有都可以。...反转列序 反转行序类似,还可以用 loc 从左到右反转列序。 ? 逗号前面的分号表示选择所有行,逗号后面的 ::-1 表示反转列,这样一,country 就跑到最右边去了。 6....用多个文件建立 DataFrame ~ 按 上个技巧按行合并数据集,但是如果多个文件包含不同,该怎么办? 本例 drinks 数据集分为了两个 CSV 文件,每个文件都包含 3 。 ?...接下来,为 DataFrame 新增一列,total_price。 ? 如上所示,每一行都列出了对应订单总价。 这样一,计算每行产品占订单总价百分比就易如反掌了。 ? 20.

7.1K20

Pandas使用技巧:如何运行内存占用降低90%!

这是因为这些块为存储 dataframe实际进行了优化。pandas BlockManager 类则负责保留行列索引实际块之间映射关系。...这意味着我们可以使用这个子类型表示从 -128 到 127(包括 0)所有整数值。 我们可以使用 numpy.iinfo 类验证每个整型数子类型最大和最小。...我们会使用 DataFrame.select_dtypes 选择整型,然后我们会对其数据类型进行优化,并比较内存用量。...当我们一列转换成 category dtype 时,pandas 就使用最节省空间 int 子类型表示该所有不同。...因为这一列不仅要存储所有的原始字符串,还要额外存储它们整型代码。

3.5K20

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

字符型转换为数值型 让我们创建另一个示例DataFrame: ? 这些数字实际上储存为字符型,导致其数据类型为object: ? 为了对这些进行数学运算,我们需要将数据类型转换成数值型。...一个字符串划分成多个 我们先创建另一示例DataFrame: ? 如果我们需要将“name”这一列划分为三个独立,用来表示first, middle, last name呢?...聚合结果与DataFrame进行组合 让我们再看一眼orders这个DataFrame: ? 如果我们想要增加一列,用于展示每个订单总价格呢?...解决办法是使用transform()函数,它会执行相同操作但是返回输入数据相同形状: ? 我们这个结果存储至DataFrame中新一列: ?...我们现在隐藏了索引,Close最小高亮成红色,Close最大高亮成浅绿色。 这里有另一DataFrame格式化例子: ?

3.2K10

Python科学计算之Pandas

如果你仔细查看其他人使用Pandas代码,你会发现这条导入语句。 Pandas数据类型 Pandas基于两种数据类型:seriesdataframe。...注意到当我们提取了一列Pandas返回一个series,而不是一个dataframe。是否还记得,你可以dataframe视作series字典。...好,我们也可以在Pandas中做同样事。 ? 上述代码范围一个布尔dataframe,其中,如果9、10月降雨量低于1000毫米,则对应布尔为‘True’,反之,则为’False’。...在返回series中,这一行一列都是一个独立元素。 可能在你数据集里有年份,或者年代,并且你希望可以用这些年份或年代索引某些行。这样,我们可以设置一个(或多个)索引。 ?...当我们以年份这一列进行合并时,仅仅’jpn_rainfall’这一列和我们UK雨量数据集对应列进行了合并。 ?

2.9K00

Python 数据处理:Pandas使用

: 类型 描述 二维ndarray 数据矩阵,还可以传入行标和标 由数组、列表或元组组成字典 每个序列会变成DataFrame一列。...所有序列长度必须相同 NumPy结构化/记录数组 类似于“由数组组成字典” 由Series组成字典 每个Series会成为一列。...另一种用法是通过布尔型DataFrame(比如下面这个由标量比较运算得出进行索引: print(data < 5) print(data[data<5]) data[data < 5] = 0...下表对DataFrame进行了总结: 类型 描述 df[val] 从DataFrame选取单列或一组;在特殊情况下比较便利:布尔型数组(过滤行)、切片(行切片)、或布尔型DataFrame(根据条件设置...后面的频率每个中这些相应计数。

22.7K10

教程 | 简单实用pandas技巧:如何内存占用降低90%

这是因为这些块为存储 dataframe实际进行了优化。pandas BlockManager 类则负责保留行列索引实际块之间映射关系。...我们会使用 DataFrame.select_dtypes 选择整型,然后我们会对其数据类型进行优化,并比较内存用量。...当我们一列转换成 category dtype 时,pandas 就使用最节省空间 int 子类型表示该所有不同。 ?...我们应该坚持主要将 category 类型用于不同数量少于总数量 50% object 。如果一列所有都是不同,那么 category 类型所使用内存将会更多。...因为这一列不仅要存储所有的原始字符串,还要额外存储它们整型代码。

3.8K100

Pandas 25 式

这里要注意是,字符串里字符数量必须 DataFrame 数一致。 3. 重命名列 ? 用点(.)选择 pandas写起来比较容易,但列名里有空格,就没法这样操作了。...rename()方法改列名是最灵活方式,它参数是字典,字典 Key 是原列名,列名,还可以指定轴向(axis)。 ? 这种方式优点是可以重命名任意数量一列、多所有都可以。...反转列序 反转行序类似,还可以用 loc 从左到右反转列序。 ? 逗号前面的分号表示选择所有行,逗号后面的 ::-1 表示反转列,这样一,country 就跑到最右边去了。 6....用多个文件建立 DataFrame ~ 按 上个技巧按行合并数据集,但是如果多个文件包含不同,该怎么办? 本例 drinks 数据集分为了两个 CSV 文件,每个文件都包含 3 。 ?...接下来,为 DataFrame 新增一列,total_price。 ? 如上所示,每一行都列出了对应订单总价。 这样一,计算每行产品占订单总价百分比就易如反掌了。 ? 20.

8.4K00

Pandas最详细教程来了!

但在使用时候,往往是索引作为区分不同数据标签。DataFrame数据结构SQL数据表或者Excel工作表结构非常类似,可以很方便地互相转换。...可以传给DataFrame构造器数据: 二维ndarray:可以自行指定索引和标签 嵌套列表或者元组:类似于二维ndarray 数据、列表或元组组成字典:每个序列变成一列。...所有序列长度必须相同 由Series组成字典:每个Series会成为一列。...如果没有指定索引,各Series索引会被合并 另一DataFrame:该DataFrame索引将会被沿用 前面生成了一个DataFrame,变量名为df。下面我们查看一下df各个属性。...▲图3-3 如果某不存在,为其赋值,会创建一个。我们可以用这种方法添加一个: df['D']=10 df 运行结果如图3-4所示。 ?

3.2K11

python数据分析笔记——数据加载整理

2、当文件没有标题行时 可以让pandas为其自动分配默认列名。 也可以自己定义列名。 3、一列作为索引,比如使用message做索引。通过index_col参数指定’message’。...通过调用merge函数即可进行合并。 当没有指明用哪一列进行连接时,程序将自动按重叠列名进行连接,上述语句就是按重叠“key”进行连接。也可以通过on指定连接进行连接。...(2)对于pandas对象(如Series和DataFrame),可以pandasconcat函数进行合并。...(2)‘长格式’旋转为‘宽格式’ 2、转换数据 (1)数据替换,某一或多个进行代替。(比较常用是缺失或异常值处理,缺失一般都用NULL、NAN标记,可以用代替缺失标记)。...利用drop_duplicates方法,可以返回一个移除了重复行DataFrame. 默认情况下,此方法是对所有进行重复项清理操作,也可以用来指定特定一列或多进行

6K80

数据导入预处理-第6章-02数据变换

等宽法 等宽法属性值域从最小到最大划分成具有相同宽度区间,具体划分多少个区间由数据本身特点决定,或者由具有业务经验用户指定 等频法 等频法将相同数量划分到每个区间,保证每个区间数量基本一致...2.2 轴向旋转(6.2.2 ) 掌握pivot()和melt()方法用法,可以熟练地使用这些方法实现轴向旋转操作 2.2.1 pivot方法 pivot()方法用于DataFrame类对象一列数据转换为索引...基于重塑数据(生成一个“透视”表)。使用来自指定索引/唯一形成结果DataFrame轴。此函数不支持数据聚合,多个导致MultiIndex。...pivot_table透视过程如下图: 假设某商店记录了5月和6月活动期间不同品牌手机促销价格,保存到以日期、商品名称、价格为标题表格中,若对该表格商品名称进行轴向旋转操作,即将商品名称一列唯一变换成索引...,将出售日期一列唯一变换成行索引。

19.2K20

整理了25个Pandas实用技巧

神奇是,pandas已经一列作为索引了: ? 需要注意是,如果你想要你工作在未来可复制,那么read_clipboard()并不值得推荐。...一个字符串划分成多 我们先创建另一示例DataFrame: ? 如果我们需要将“name”这一列划分为三个独立,用来表示first, middle, last name呢?...如果我们想要划分一个字符串,但是仅保留其中一个结果呢?比如说,让我们以", "划分location这一列: ?...如果我们想要增加一列,用于展示每个订单总价格呢?回忆一下,我们通过使用sum()函数得到了总价格: ?...我们可以通过链式调用函数来应用更多格式化: ? 我们现在隐藏了索引,Close最小高亮成红色,Close最大高亮成浅绿色。 这里有另一DataFrame格式化例子: ?

2.8K40

Pandas_Study01

,但特殊同时普通一维数组不同 列表只能有从0开始整数索引,而series则可以自定义标签索引,这一点看,跟字典又比较相似,因此series又可以拥有类似字典操作方式,series 标签索引可以随时更新修改替换...loc 用法(Dataframe): loc([这里是行标识], [这里是标识]) 示例: data.loc[:,'一'] #取出所有行第一列,loc可以理解为传入两个参数一个是关于行,一个是关于...,读取到文件后就是一个dataframe 对象,之后操作都是基于dataframe和series 。...2).参与运算的如果是两个DataFrame,有可能所有的行、是一致,那么运算时对应行列位置进行相应算术运算,若行列没有对齐,那么填NaN。 3)....如果参与运算一个是DataFrame另一个是Series,那么pandas会对Series进行行方向广播,然后做相应运算。 4).

16610

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

3更改列名 我们来看一下刚才我们创建示例DataFrame: df 我更喜欢在选取pandas时候使用点(.),但是这对那么列名中含有空格不会生效。让我们修复这个问题。...字符型转换为数值型 我们创建另一个示例DataFrame: df = pd.DataFrame({'col_one':['1.1', '2.2', '3.3'],...一个字符串划分成多个 我们先创建另一示例DataFrame: df = pd.DataFrame({'name':['John Arthur Doe', 'Jane Ann Smith'],...聚合结果与DataFrame进行组合 我们再看一眼orders这个DataFrame: orders.head(10) 如果我们想要增加一列,用于展示每个订单总价格呢?...我们回到stocks这个DataFrame: stocks 我们可以创建一个格式化字符串字典,用于对每一列进行格式化。

6.4K40

收藏 | 11个Python Pandas小技巧让你工作更高效(附代码实例)

加入这些参数另一大好处是,如果这一列中同时含有字符串和数值类型,而你提前声明把这一列看作是字符串,那么这一列作为主键融合多个表时,就不会报错了。...df[‘c].value_counts().reset_index(): 这个统计表转换成pandasdataframe并且进行处理。 8....基于分位数分组 面对一列数值,你想将这一列进行分组,比如说最前面的5%放入组别一,5-20%放入组别二,20%-50%放入组别三,最后50%放入组别四。...另一个技巧是用来处理整数值和缺失混淆在一起情况。如果一列含有缺失和整数值,那么这一列数据类型会变成float而不是int。...当导出表格时,你可以加上float_format=‘%.0f’以便所有的浮点数近似成整数。当你想把所有输出都变成整数格式时,就可以使用这个技巧,这样一你就会告别所有数值后带“.0”烦恼。

1.2K30

数据处理利器pandas入门

数据统计信息 获取每一列统计相关数据,count表示一列行数,mean表示均值,std为标准差,min和max表示最小和最大,25%,50%和75%分别表示1/4位数,中位数和3/4位数。...Pandas主要有两种数据查询选择操作: 基于标签查询 基于整数位置索引查询 Pandas在选择时,无需使用 date[:, columns] 形式,先使用 : 选择所有行,再指定 columns...由于Series只有一列,因此只需要对行进行索引操作即可,也支持基于标签和整数位置索引方式。...索引切片: 可以理解成 idx MultiIndex 视为一个 DataFrame,然后将上层索引视为行,下层索引视为,以此进行数据查询。...,idx['1001A', ['AQI', 'PM10', 'PM2.5']] 表示 data 中指定,如果 idx 看作 DataFrame,那么'1001A'则是 idx 中行,['AQI

3.6K30
领券