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

前言

数据处理中,按行排列的列名可以提供更直观的数据探索和分析方式。

你可以逐行查看列名,了解每列的含义和特征,有助于更好地理解数据集的结构和内容。

需求:

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

思路:

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

使用步骤

读入数据

代码如下(示例):

python 复制代码
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
python 复制代码
# 代码:
# 先设置基金名称为索引,这时基金名称就不参加行的计算,仅值进行计算。
# 用 apply() 按行将每行 Series 进行排序,最后转为字典:
(
    df.set_index('基金名称')
    .apply(lambda x: x.sort_values(ascending=False).to_dict(), axis=1) #对每个基金的投资分布按照降序排序,并转换成字典的形式
)
python 复制代码
# 通过列表推导式,将值为 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])
)
python 复制代码
# 用中文顿号连接列表的项:
# 使用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
python 复制代码
# 将得到的列值指定到数据中:
df.assign(行业分布=col.array) # col.array表示将列数据以数组的形式添加到DataFrame对象中

总结

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

相关推荐
weixin_456904271 天前
# Pandas 与 Spark 数据操作完整教程
大数据·spark·pandas
dlraba8022 天前
Pandas:机器学习数据处理的核心利器
人工智能·机器学习·pandas
猫头虎4 天前
如何查看局域网内IP冲突问题?如何查看局域网IP环绕问题?arp -a命令如何使用?
网络·python·网络协议·tcp/ip·开源·pandas·pip
peter67684 天前
pandas学习小结
学习·pandas
猫头虎5 天前
如何解决 pip install -r requirements.txt extras 语法 ‘package[extra’ 缺少 ‘]’ 解析失败问题
开发语言·python·开源·beautifulsoup·virtualenv·pandas·pip
MoRanzhi12035 天前
15. Pandas 综合实战案例(零售数据分析)
数据结构·python·数据挖掘·数据分析·pandas·matplotlib·零售
eqwaak06 天前
数据预处理与可视化流水线:Pandas Profiling + Altair 实战指南
开发语言·python·信息可视化·数据挖掘·数据分析·pandas
Love__Tay6 天前
【数据分析与可视化】2025年一季度金融业主要行业资产、负债、权益结构与增速对比
金融·excel·pandas·matplotlib
万粉变现经纪人6 天前
如何解决 pip install -r requirements.txt 约束文件 constraints.txt 仅允许固定版本(未锁定报错)问题
开发语言·python·r语言·django·beautifulsoup·pandas·pip
万粉变现经纪人6 天前
如何解决 pip install -r requirements.txt 无效可编辑项 ‘e .‘(-e 拼写错误)问题
开发语言·python·r语言·beautifulsoup·pandas·pip·scipy