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

Pandas DataFrame如何分组(pivot?)按指定列的值显示行,但保留原始索引?

Pandas DataFrame可以使用groupby方法来实现分组操作,而不是使用pivot。groupby方法可以根据指定的列的值对DataFrame进行分组,并返回一个GroupBy对象。然后,可以使用该对象的get_group方法获取指定分组的数据。

以下是按指定列的值显示行,同时保留原始索引的步骤:

  1. 导入pandas库并创建DataFrame对象:
代码语言:txt
复制
import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie', 'Alice', 'Bob'],
        'Age': [25, 30, 35, 25, 30],
        'City': ['New York', 'Paris', 'London', 'Tokyo', 'Paris']}
df = pd.DataFrame(data)
  1. 使用groupby方法按指定列的值进行分组,并获取指定分组的数据:
代码语言:txt
复制
grouped = df.groupby('Name')
grouped_data = grouped.get_group('Alice')

在上述代码中,我们按照'Name'列的值进行分组,并获取了'Name'列值为'Alice'的所有行。

  1. 保留原始索引:

默认情况下,groupby方法会将分组列作为新的索引,如果要保留原始索引,可以使用reset_index方法:

代码语言:txt
复制
grouped_data = grouped_data.reset_index(drop=True)

在上述代码中,我们使用reset_index方法将索引重置为默认的整数索引,并通过drop参数删除原始索引列。

这样,grouped_data就是按指定列的值显示行,同时保留原始索引的DataFrame。

Pandas官方文档中关于groupby方法的详细介绍和示例可以参考以下链接:

腾讯云相关产品中,与数据分析和处理相关的产品是腾讯云数据万象(Cloud Infinite)和腾讯云数据湖(Data Lake)。腾讯云数据万象提供了丰富的图像和视频处理能力,可以帮助用户实现图像和视频的分析和处理。腾讯云数据湖是一种高度可扩展的数据存储和分析服务,可以帮助用户构建大规模的数据湖架构,支持数据的存储、管理和分析。

腾讯云数据万象产品介绍链接地址:

腾讯云数据湖产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Pandas图鉴(三):DataFrames

这个过程如下所示: 索引Pandas中有很多用途: 它使通过索引查询更快; 算术运算、堆叠、连接是索引排列;等等。 所有这些都是以更高内存消耗和更不明显语法为代价。...df.loc['a':'b']['A']=10不会(对其元素赋值不会)。 最后一种情况,该将只在切片副本上设置,而不会反映在原始df中(将相应地显示一个警告)。...,连接要求 "right" 是有索引; 合并丢弃左边DataFrame索引,连接保留它; 默认情况下,merge执行是内连接,join执行是左外连接; 合并不保留顺序,连接保留它们(有一些限制...首先,你可以只用一个名字来指定分组,如下图所示: 如果没有as_index=False,Pandas会把进行分组那一作为索引。...方法)pivot_table: 没有参数,它行为类似于groupby; 当没有重复分组时,它工作方式就像透视一样; 否则,它就进行分组和透视。

38920

小白也能看懂Pandas实操演示教程(下)

改:修改原始记录 如果发现表中数据错了,如何更改原来呢?尝试结合布尔索引和赋值方法 student3 ?...利用thresh,保留一些为nan 方向上至少有3个非NAN保留 df=pd.DataFrame([[1,1,2,np.nan],[3,5,np.nan,np.nan],[13,21,34,np.nan...=None,margins=False,dropna=True,margins_name='All') data:需要进行数据透视表操作数据框 values:指定需要聚合字段 index:指定某些原始变量作为索引...columns:指定哪些离散分组变量 aggfunc:指定相应聚合函数 fill_value:使用一个常数替代缺失,默认不替换 margins:是否进行行或汇总,默认不汇总 dropna:默认所有观测为缺失...Excel中预期那样,该如何变成联表形式呢?

2.5K20
  • python数据科学系列:pandas入门详细教程

    切片类型与索引类型不一致时,引发报错 loc/iloc,最为常用两种数据访问方法,其中loc标签访问、iloc数字索引访问,均支持单访问或切片查询。...检测各行是否重复,返回一个索引bool结果,可通过keep参数设置保留第一/最后一/无保留,例如keep=first意味着在存在重复多行时,首被认为是合法而可以保留 删除重复,drop_duplicates...count、value_counts,前者既适用于series也适用于dataframe,用于统计个数,实现忽略空计数;而value_counts则仅适用于series,执行分组统计,并默认频数高低执行降序排列...;sort_values是排序,如果是dataframe对象,也可通过axis参数设置排序方向是还是,同时根据by参数传入指定或者,可传入多行或多并分别设置升序降序参数,非常灵活。...以SQL中经典学生成绩表为例,给定原始学生—课程—成绩表,需重整为学生vs课程成绩表,则可应用pivot实现: ?

    13.9K20

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

    2.2 轴向旋转(6.2.2 ) 掌握pivot()和melt()方法用法,可以熟练地使用这些方法实现轴向旋转操作 2.2.1 pivot方法 pivot()方法用于将DataFrame类对象某一数据转换为索引...基于重塑数据(生成一个“透视”表)。使用来自指定索引/唯一来形成结果DataFrame轴。此函数不支持数据聚合,多个将导致MultiIndex。...pivot()函数如下: DataFrame.pivot(index=None, columns=None, values=None) index:表示新生成对象索引,若未指定说明使用现有对象索引...,商品一唯一数据变换为索引: # 将出售日期一唯一数据变换为索引,商品一唯一数据变换为索引 new_df = df_obj.pivot(index='出售日期', columns='商品名称...',values='价格(元)') new_df 输出为: 2.2.2 melt方法 melt()是pivot()逆操作方法,用于将DataFrame类对象索引转换为一数据。

    19.2K20

    Pandas进阶|数据透视表与逆透视

    索引索引都可以再设置为多层,不过索引索引在本质上是一样,大家需要根据实际情况合理布局。...下面进行汇总,指定汇总列名为“Total” data.pivot_table(index="driver_gender", columns="driver_race...如果指定了聚合函数则按聚合函数来统计,但是要指定values,指明需要聚合数据。 pandas.crosstab 参数 index:指定了要分组,最终作为。...columns:指定了要分组,最终作为。 values:指定了要聚合(由行列共同影响),需要指定aggfunc参数。 rownames:指定名称。 colnames:指定了列名称。...使用pandas.DataFrame.rename_axis去除columns名称 # 第一步,重置索引 df_wide = df_pivot.reset_index() # 重置name,设置为None

    4.2K11

    pandas中使用数据透视表

    格式数据 values:需要汇总计算,可多选 index:分组键,一般是用于分组列名或其他分组键,作为结果DataFrame索引 columns:分组键,一般是用于分组列名或其他分组键,...作为结果DataFrame索引 aggfunc:聚合函数或函数列表,默认为平均值 fill_value:设定缺失替换 margins:是否添加行列总计 dropna:默认为True,如果所有都是...NaN,将不作为计算,False时,被保留 margins_name:汇总行列名称,默认为All observed:是否显示观测 ?...参数aggfunc对应excel透视表中汇总方式,比excel聚合方式更丰富: ? 如何使用pivot_table? 下面拿数据练一练,示例数据表如下: ?...总结 本文介绍了pandas pivot_table函数使用,其透视表功能基本和excel类似,pandas聚合方式更加灵活和多元,处理大数据也更快速,大家有兴趣可探索更高级用法。

    2.8K40

    Python面试十问2

    df.info():主要用于提供关于DataFrame一般信息,如索引、数据类型、非空数量以及内存使用情况。它不会提供数值型数据统计摘要,而是更多地关注于数据集整体结构和数据类型。...六、pandas运算操作  如何得到⼀个数列最⼩、第25百分位、中值、第75位和最⼤?...可以使用sort_values()方法对DataFrame或Series进行排序,根据指定或行进行升序或降序排列。...DataFrame索引保留在附加DataFrame中,设置ignore_index = True可以避免这种情况。...先分组,再⽤ sum()函数计算每组汇总数据  多分组后,⽣成多层索引,也可以应⽤ sum 函数 分组后可以使用如sum()、mean()、min()、max()等聚合函数来计算每个组统计

    8110

    pandas中使用数据透视表

    格式数据 values:需要汇总计算,可多选 index:分组键,一般是用于分组列名或其他分组键,作为结果DataFrame索引 columns:分组键,一般是用于分组列名或其他分组键,...作为结果DataFrame索引 aggfunc:聚合函数或函数列表,默认为平均值 fill_value:设定缺失替换 margins:是否添加行列总计 dropna:默认为True,如果所有都是...NaN,将不作为计算,False时,被保留 margins_name:汇总行列名称,默认为All observed:是否显示观测 注意,在所有参数中,values、index、columns最为关键...,它们分别对应excel透视表中: 参数aggfunc对应excel透视表中汇总方式,比excel聚合方式更丰富: 如何使用pivot_table?...) result4.head() 总结 本文介绍了pandas pivot_table函数使用,其透视表功能基本和excel类似,pandas聚合方式更加灵活和多元,处理大数据也更快速,大家有兴趣可探索更高级用法

    3K20

    数据分析之Pandas变形操作总结

    Pandas做分析数据,可以分为索引分组、变形及合并四种操作。前边已经介绍过索引操作、分组操作,现在接着对Pandas变形操作进行介绍,涉及知识点提纲如下图: ? 本文目录 1....交叉表功能也很强大(目前还不支持多级分组),下面说明一些重要参数: ① values和aggfunc:分组对某些数据进行聚合操作,这两个参数必须成对出现 pd.crosstab(index=df[...melt函数中id_vars表示需要保留,value_vars表示需要stack一组,value_name是value_vars对应列名。...结论:stack函数可以看做将横向索引放到纵向,因此功能类似与melt,参数level可指定变化索引是哪一层(或哪几层,需要列表) df_stacked = df_s.stack(level=0)...是将索引分组

    4K21

    Pandas三百题

    2 - pandas 个性化显示设置 1.显示全部 pd.set_option('display.max_columns',None) 2.显示指定/ 指定让 data 在预览时显示10,7...() 21-删除重复|指定 删除全部重复保留最后一次出现 df.drop_duplicates(keep='last') 4-数据统计描述性分析 数据探索 1-查看数据 查看数据前十...] 39-筛选|组合(行号+号) 提取第 4 ,第 4 df.iloc[3,3] 40 - 筛选|组合(行号+列名) 提取索引为 4 ,列名为 金牌数 df.at[4,'金牌数'...11:32:16.625393') 2-时间生成|指定范围 使用pandas天生成2021年1月1日至2021年9月1日全部日期 pd.date_range('1/1/2021','9/11/2021...将 df1 索引设置为日期,将 df1 数据向后移动一天 df1.set_index(['日期']).shift(1) 25 - 日期重采样|日 -> 周 周对 df1 进行重采样,保留每周最后一个数据

    4.7K22

    数据科学原理与技巧 三、处理表格数据

    × 2 使用谓词对切片 为了分割出 2016 年,我们将首先创建一个序列,其中每个想要保留行为True,每个想要删除行为False。...,并且学会了在pandas中表达以下操作: 操作 pandas 读取 CSV 文件 pd.read_csv() 使用标签或索引来切片 .loc和.iloc 使用谓词对切片 在.loc中使用布尔序列...对于每一个特定年份和性别,找到最常见名字。 几乎总是有一种更好替代方法,用于遍历pandas DataFrame。特别是,遍历DataFrame特定,通常应该替换为分组。...需要知道重要事情是,.loc接受索引元组,而不是单个: baby_pop.loc[(2000, 'F'), 'Name'] # 'Emily' .iloc行为与往常一样,因为它使用索引而不是标签...通过在pandas文档中查看绘图,我们了解到pandasDataFrame绘制为一组条形,并将每显示为不同颜色条形。 这意味着letter_dist表透视版本将具有正确格式。

    4.6K10

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

    操控缺失 把字符串分割为多 把 Series 里列表转换为 DataFrame 用多个函数聚合 用一个 DataFrame 合并聚合输出结果 选择 重塑多重索引 Series 创建透视表...通过赋值语句,把这两添加到原 DataFrame。 ? 如果想分割字符串,只想保留分割结果,该怎么操作? ? 要是只想保留城市,可以选择只把城市加到 DataFrame 里。 ?...要解决这个问题得用 transform() 方法,这个方法执行同样计算,返回与原始数据行数一样输出结果,本例中为 4622 。 ?...创建透视表 经常输出类似上例 DataFramepivot_table() 方法更方便。 ? 使用透视表,可以直接指定索引、数据与聚合函数。...可以看到,这个表隐藏了索引,闭市价最小用红色显示,最大用浅绿色显示。 再看一下背景色渐变样式。 ? 交易量(Volume)现在按不同深浅蓝色显示,一眼就能看出来数据大小。

    7.1K20

    Pandas 25 式

    操控缺失 把字符串分割为多 把 Series 里列表转换为 DataFrame 用多个函数聚合 用一个 DataFrame 合并聚合输出结果 选择 重塑多重索引 Series 创建透视表...通过赋值语句,把这两添加到原 DataFrame。 ? 如果想分割字符串,只想保留分割结果,该怎么操作? ? 要是只想保留城市,可以选择只把城市加到 DataFrame 里。 ?...要解决这个问题得用 transform() 方法,这个方法执行同样计算,返回与原始数据行数一样输出结果,本例中为 4622 。 ?...创建透视表 经常输出类似上例 DataFramepivot_table() 方法更方便。 ? 使用透视表,可以直接指定索引、数据与聚合函数。...改变显示选项 接下来还是看泰坦尼克数据集。 ? 年龄列有 1 位小数,票价列有 4 位小数,如何将这两显示小数位数标准化? 用以下代码让这两显示 2 位小数。 ?

    8.4K00

    快速介绍Python数据分析库pandas基础知识和代码示例

    我创建了这个pandas函数备忘单。这不是一个全面的列表,包含了我在构建机器学习模型中最常用函数。让我们开始吧!...通常回根据一个或多个对panda DataFrame进行排序,或者根据panda DataFrame索引名称进行排序。 例如,我们希望学生名字升序排序。...假设我们想性别将分组,并计算物理和化学平均值和标准差。...我们将调用pivot_table()函数并设置以下参数: index设置为 'Sex',因为这是来自df,我们希望在每一中出现一个唯一 values为'Physics','Chemistry...类似地,我们可以使用df.min()来查找每一或每最小。 其他有用统计功能: sum():返回所请求总和。默认情况下,axis是索引(axis=0)。

    8.1K20

    python数据分析——数据分类汇总与统计

    具体办法是向agg传入一个从列名映射到函数字典: 只有将多个函数应用到至少一时,DataFrame才会拥有层次化 2.3.返回不含索引聚合数据 到目前为止,所有例中聚合数据都有由唯一分组键组成索引...首先,编写一个选取指定具有最大函数: 现在,如果对smoker分组并用该函数调用apply,就会得到: top函数在DataFrame各个片段调用,然后结果由pandas.concat...关键技术:在pandas中透视表操作由pivot_table()函数实现,其中在所有参数中,values、index、 columns最为关键,它们分别对应Excel透视表中。...crosstab函数可以按照指定统计分组频数。...: 名称 margins : 总计/ normalize:将所有除以总和进行归一化,为True时候显示百分比 dropna :是否刪除缺失 【例19】根据国籍和用手习惯对这段数据进行统计汇总

    52510

    盘一盘 Python 系列 4 - Pandas (下)

    索引索引,用 stack 函数 索引索引,用 unstack 函数 单层 DataFrame 创建 DataFrame df (1 层索引,1 层索引) symbol = ['JD...索引 = [行业, 价格, 交易量],名称是特征 stack: 索引索引 索引 (特征) 变成了索引,原来 DataFrame df 变成了两层 Series (第一层索引是代号,第二层索引是特征...unstack: 索引索引 索引 (代号) 变成了索引,原来 DataFrame df 也变成了两层 Series (第一层索引是特征,第二层索引是代号)。...从长到宽 (pivot) 当我们做数据分析时,只关注不同股票在不同日期下 Adj Close,那么可用 pivot 函数可将原始 data「透视」成一个新 DataFrame,起名 close_price...---- 【分组数据表】用 groupBy 函数不同「索引」下分组。一个「索引」或多个「索引」就可以。 【整合数据表】用 agg 函数对每个组做整合而计算统计量。

    4.8K40

    pandas技巧6

    本篇博文主要是对之前几篇关于pandas使用技巧小结,内容包含: 创建S型或者DF型数据,以及如何查看数据 选择特定数据 缺失处理 apply使用 合并和连接 分组groupby机制 重塑reshaping...df.sort_index(axis=0, ascending=False),索引降序排列 df.sort_values(by=“age”),某个属性降序排列 查看数据 缺失处理 二者都是判断是不是缺失...NaN补充 join outer:合并,缺用nan inner:求交集,非交集部分直接删除 keys:用于层次化索引 ignore_index:不保留连接轴上索引,产生新索引 连接merge 可根据...,默认是T suffixes 重复列名,直接指定后缀,用元组形式(’_left’, ‘_right’) left_index、right_index 将左侧、右侧索引index作为连接键(用于index...=False 重塑reshaping stack:将数据旋转成行,AB由属性变成行索引 unstack:将数据旋转成,AB由索引变成属性 透视表 data: a DataFrame

    2.6K10

    Pandas

    ] = 3#更改符合条件记录 删除或者需要借助 drop 函数(要调整 inplace 参数,感觉这个函数主要是用来不显示某些)。...,也可以指定 level 参数 调整 as_index 参数返回不带标签索引结果(取消两个及以上分组分组结果多级索引) 调整 group_keys 参数,决定是否显示分组索引 一般用分组取值作为索引...()方法删除记录或特征(默认删除含有缺失,可以修改 how 参数进行调节,也可以调节 thresh 参数控制删除指定数量缺失,亦可通过调节subset=[col_name]参数来指定删除指定存在缺失...) 缺失补充 df.isnull().T.any() == True返回缺失所在行索引 也可以使用 pandas.DataFrame.fillna()方法进行常量填补() 输入字典来指定每一填补...交叉表是一种特殊数据透视表,它仅指定一个特征作为分组键,一个特征作为分组键,是为交叉意思。

    9.1K30

    盘点66个Pandas函数,轻松搞定“数据清洗”!

    head()方法和tail() 方法则是分别显示数据集前n和后n行数据。如果想要随机看N数据,可以使用sample()方法。...它既支持替换全部或者某一,也支持替换指定某个或指定多个数值(用字典形式),还可以使用正则表达式替换。...操作 数据清洗时,会将带空删除,此时DataFrame或Series类型数据不再是连续索引,可以使用reset_index()重置索引。...数据筛选 如果是筛选行列的话,通常有以下几种方法: 有时我们需要按条件选择部分列、部分行,一般常用方法有: 操作 语法 返回结果 选择 df[col] Series 索引选择 df.loc[label...] Series 数字索引选择 df.iloc[loc] Series 使用切片选择 df[:5] DataFrame 用表达式筛选[3] df[bool_vec] DataFrame 除此以外

    3.8K11

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

    大多数数据科学家可能会赞扬Pandas进行数据准备能力,许多人可能无法利用所有这些能力。...操作数据帧可能很快会成为一项复杂任务,因此在Pandas八种技术中均提供了说明,可视化,代码和技巧来记住如何做。 ?...初始DataFrame中将成为索引,并且这些显示为唯一,而这两组合将显示。这意味着Pivot无法处理重复。 ? 旋转名为df DataFrame代码 如下: ?...Unstack 取消堆叠将获取多索引DataFrame并对其进行堆叠,将指定级别的索引转换为具有相应DataFrame。在表上调用堆栈后再调用堆栈不会更改该堆栈(原因是存在“ 0 ”)。...Concat 合并和连接是水平工作,串联或简称为concat,而DataFrame(垂直)连接

    13.3K20
    领券