首页 > 其他分享 >036—pandas 按行将列名根据值由大到小排序

036—pandas 按行将列名根据值由大到小排序

时间:2024-03-24 09:03:29浏览次数:173  
标签:df 列名 值由大到 列表 col apply 036 pandas lambda

前言

数据处理中,按行排列的列名可以提供更直观的数据探索和分析方式。
你可以逐行查看列名,了解每列的含义和特征,有助于更好地理解数据集的结构和内容。

需求:

  • 需要增加一列「分布方式」,每行的值是本行基金名称对应列名及数量,顺序按照值大小,值为 0 的不显示

思路:

  • 先用 apply() 按行,将构成每行 Series 转为字典,这时字典的键为列名,值为数值。
  • 接着用列表推导式过滤值为 0 的项,得到一个列表。
  • 再用 join() 方法用顿号 、 将列表的所有项连接起来。
  • 最后将得到的结果指定为一个列。

使用步骤

读入数据

代码如下(示例):

mport io
import pandas as pd


data = '''
基金名称 电子 传媒 计算机
 基金A  1  6   7
 基金B  0  3   8
 基金C  7  0   9

'''

df = pd.read_csv(io.StringIO(data), delim_whitespace=True) #通过指定delim_whitespace=True参数来指示使用空格作为分隔符
df

在这里插入图片描述

# 代码:
# 先设置基金名称为索引,这时基金名称就不参加行的计算,仅值进行计算。
# 用 apply() 按行将每行 Series 进行排序,最后转为字典:
(
    df.set_index('基金名称')
    .apply(lambda x: x.sort_values(ascending=False).to_dict(), axis=1) #对每个基金的投资分布按照降序排序,并转换成字典的形式
)

在这里插入图片描述

# 通过列表推导式,将值为 0 的过滤,得到列表:
(
    df.set_index('基金名称')
    .apply(lambda x: x.sort_values(ascending=False).to_dict(), axis=1)
    .map(lambda x: [f'{k}({v})' for k,v in x.items() if v>0])
)

在这里插入图片描述

# 用中文顿号连接列表的项:
# 使用map()函数将每个Series对象中的字符串用'、'连接起来,形成一个新的字符串
col = (
    df.set_index('基金名称')
    .apply(lambda x: x.sort_values(ascending=False).to_dict(), axis=1)
    .map(lambda x: [f'{k}({v})' for k,v in x.items() if v>0])
    .map('、'.join)
)
col

在这里插入图片描述

# 将得到的列值指定到数据中:
df.assign(行业分布=col.array) # col.array表示将列数据以数组的形式添加到DataFrame对象中

在这里插入图片描述

总结

以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

标签:df,列名,值由大到,列表,col,apply,036,pandas,lambda
From: https://blog.csdn.net/2202_76035290/article/details/136980033

相关文章

  • L2-036 网红点打卡攻略
    没有AC,没有用到每个地点只能打卡一次的限制条件。错误版本:#include<bits/stdc++.h>usingnamespacestd;intedges[210][210],fangan[2000][2000];intminspend=INT_MAX;intidx=0;intmain(){ intn,m; cin>>n>>m; for(inti=0;i<m;i++){ inta......
  • Python利用Numpy和Pandas实现数据清洗
    利用Numpy和Pandas对数据进行清洗,包括去除重复记录、处理缺失值和异常值,实现代码如下:点击此处下载数据集#coding=utf-8#导入必要的库importpandasaspdimportnumpyasnp#导入数据及输出格式defread_data(filename):data=pd.read_csv(filename)......
  • 十.pandas方法总结&Numpy
    目录十.pandas方法总结1.索引切片2.数据排序3.数据统计Pandas数据计算4.数据查看5.数据清洗6-数据分组查看分组结果7-处理第三方数据csv文件操作Excel文件操作Excel文件读取read_excelExcel文件写入to_excel()SQL操作mysql读取数据保存pandas处理字符串数......
  • 借助Numpy,优化Pandas的条件检索代码
    Numpy其实是最早的处理数据的Python库,它的核心ndarray对象,是一个高效的n维数组结构。通过这个库,可以高效的完成向量和矩阵运算,由于其出色的性能,很多其他的数据分析,科学计算或者机器学习相关的Python库都或多或少的依赖于它。Pandas就是其中之一,Pandas充分利用了NumPy的数组运算......
  • 九.pandas绘图基础
    目录九.pandas绘图基础1-柱状图--参数stacked=True堆积--参数figsize=(宽,高)--自定义横坐标--设置字体&显示负号2.箱型图3.折线图九.pandas绘图基础Pandas的DataFrame和Series,在matplotlib基础上封装了一个简易的绘图函数,使得我们在数据处理过程中方便可视化......
  • 100_pandas-Python的数据分析包
    目录什么是pandas索引操作赋值和排序算术运算和逻辑运算统计运算自定义函数运算pandas画图文件读取和存储缺失值处理-删除/替换数据离散化数据合并交叉表和透视表分组和聚合什么是pandas索引操作赋值和排序算术运算和逻辑运算统计运算自定义函数运算pandas画图文......
  • Pandas:如何让你的代码性能飙升
    在数据分析相关的工作中,Pandas无疑是一个强大的工具,它的易用性和灵活性广受青睐。然而,随着数据量的不断增长和计算需求的日益复杂,Pandas代码的性能问题也逐渐浮出水面。如何让Pandas代码运行得更快、更高效,成为了每一个人使用者都需要面对的挑战。今天,本文就一个简化版的实际分析......
  • 利用Python来计算微信群内捐款总额(正则匹配提取数字),并利用pandas把数据存入到excel中
    概述    这是一个现实中实际的案例,用到的知识也都是非常基础的东西,刚学完Python基础知识的可以用来练手。        情况是这样的,前两天村里有人突发重病,住进了重症监护室,这个人是家里上有老、下有小,家庭条件比较困难,因此村里组织号召大家捐款,村里人也积极友爱......
  • 数据预处理|数据清洗|使用Pandas进行异常值清洗
    数据预处理|数据清洗|使用Pandas进行异常值清洗使用Pandas进行异常值清洗1.异常值检测1.1简单统计分析1.2散点图方法1.33σ原则1.4箱线图2.异常值处理2.1直接删除2.2视为缺失值2.3平均值修正2.4盖帽法2.5分箱平滑法2.6回归插补2.7多重插补2.8不处理......
  • pandas:如何保存数据比较好?
    我们在使用pandas处理完数据之后,最终总是要把数据作为一个文件保存下来,那么,保存数据最常用的文件是什么呢?我想大部分人一定会选择csv或者excel。刚接触数据分析时,我也是这么选择的,不过,今天将介绍几种不一样的存储数据的文件格式。这些文件格式各有自己的一些优点,希望本文能让你以......