首页 > 其他分享 >pandas数据框常用操作

pandas数据框常用操作

时间:2024-09-28 13:04:00浏览次数:6  
标签:常用 pd DataFrame col1 https test 操作 pandas

pandas官方文档:https://pandas.pydata.org/docs/reference/

DataFrame官方文档:https://pandas.pydata.org/docs/reference/frame.html

添加新列:https://www.geeksforgeeks.org/adding-new-column-to-existing-dataframe-in-pandas/

创建

构造函数:https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html

从已有列创建

a = [1, 2, 3]
b = ['x', 'y', 'z']
pd.DataFrame({'a': a, 'b': b})
   a  b
0  1  x
1  2  y
2  3  z

从Series list创建

li = []
li.append(pd.Series([1, 2, 3]))
li.append(pd.Series([4, 5, 6]))
# https://stackoverflow.com/a/57034111/13688160
# Series相当于列向量,所以concat的方向为column
# 然后.T转置一下
df = pd.concat(li, axis=1).T
# https://www.kdnuggets.com/2022/11/4-ways-rename-pandas-columns.html
df.columns = ['a', 'b', 'c']
df
   a  b  c
0  1  2  3
1  4  5  6

从stdin读取

直接把sys.stdin当file输入进去即可:

latencies = pd.read_table(sys.stdin, names=['operation', 'latency(ns)'], delim_whitespace=True)

来源:https://stackoverflow.com/questions/18495846/pandas-data-from-stdin

添加新行

https://pandas.pydata.org/docs/reference/api/pandas.concat.html#pandas.concat

注意,append已经被deprecated了:https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.append.html

如果需要把Series作为行添加到DataFrame里,需要先将其转换成DataFrame,再转置:

r = pd.Series([1, 2, 3], index = ['col1', 'col2', 'col3'])
d = pd.DataFrame({'col1': [0, 1], 'col2': [2, 3], 'col3': [4, 5]})
pd.concat([d, pd.DataFrame(r).T])

注意,pd.concat会返回一个新的DataFrame,所以复杂度是O(n)的:https://stackoverflow.com/a/36489724/13688160

根据index取出行

.iloc,与python自带的list的语法类似:

test = pd.DataFrame({'col1': range(0, 10), 'col2': range(10, 20)})
# 取出第2行到第4行:
test.iloc[1:4]
# 取出最后一行
test.iloc[-1]

取出满足条件的行

# 选择年龄大于25岁且性别为男性的数据行
print(df[(df['age'] > 25) & (df['gender'] == 'male')])

来源:https://www.ycpai.cn/python/UcXZsYr8.html

取出多列

test = pd.DataFrame({'col1': [0, 1], 'col2': [2, 3], 'col3': [4, 5]})
# 取出col2和col1列
test[['col2', 'col1']]

输出:

   col2  col1
0     2     0
1     3     1

求均值

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.mean.html

test = pd.DataFrame({'col1': [0, 1, 2, 3], 'col2': [4, 5, 6, 7]})
# 求每列的平均数
test.mean()
test.mean(axis=0)
# 求每行的平均数
test.mean(axis=1)

groupby

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.groupby.html

每3行分组并求均值

test = pd.DataFrame({'col1': range(0, 10), 'col2': range(10, 20)})
test.groupby(test.index // 3).mean()

输出:

   col1  col2
0   1.0  11.0
1   4.0  14.0
2   7.0  17.0
3   9.0  19.0

将某列的值相同的合并成一个list

https://stackoverflow.com/questions/22219004/how-to-group-dataframe-rows-into-list-in-pandas-groupby

遍历

https://stackoverflow.com/questions/16476924/how-to-iterate-over-rows-in-a-dataframe-in-pandas

前缀和

test = pd.DataFrame({'col1': [0, 1, 2, 3], 'col2': [4, 5, 6, 7]})
test['col1'].cumsum()

转dict

https://stackoverflow.com/questions/18695605/how-to-convert-a-dataframe-to-a-dictionary

df.set_index('id')

然后就变成了一个dict-like了,value是其他所有列。

如果要得到映射到另一列的dict:

df.set_index('id')['column']

转成真正的dict:

df.set_index('id')['column'].to_dict()

标签:常用,pd,DataFrame,col1,https,test,操作,pandas
From: https://www.cnblogs.com/searchstar/p/18437350

相关文章

  • numpy矩阵操作
    numpy官方文档:https://numpy.org/doc/stable/pipinstallnumpyimportnumpyasnp矩阵定义$$\left[\begin{matrix}1&2\3&4\end{matrix}\right]$$a=np.array([[1,2],[3,4]])reshapehttps://numpy.org/doc/stable/reference/generated/numpy.res......
  • Docker的安装及常用命令
    Docker是一个开源的容器化平台,它可以让开发者将应用程序及其依赖项打包到一个可移植的容器中,从而实现快速部署、轻松迁移和高效的资源利用。一、核心概念镜像(Image):类似于虚拟机的镜像,是一个只读的模板,包含了运行一个特定应用程序所需的所有文件和依赖项。可以从Docker......
  • 深入剖析 MyBatis-Plus:操作总结、对比与实践案例(CRUD 操作、分页、条件构造器、自动填
    MyBatis-Plus是MyBatis的增强工具,它极大简化了MyBatis的配置和操作,提高了开发效率。本文从基本操作到高阶用法,详细介绍了MyBatis-Plus的常见功能及与MyBatis的区别,并通过实际案例展示其强大的扩展能力。MyBatis-Plus基于MyBatis,但旨在减少开发者的代码量,增强可......
  • AIGC基础工具-用于数据分析和数据处理的核心库Pandas介绍
    文章目录1.Pandas的核心数据结构1.1Series创建`Series`Series重要属性示例1.2DataFrame创建`DataFrame`DataFrame重要属性示例2.Pandas数据的导入与导出2.1读取CSV文件2.2读取Excel文件2.3写入CSV文件2.4读取JSON文件3.Pandas的数据操作3.1......
  • docker常用命令
     查看本地镜像:$sudodockerimages删除镜像$sudodockerrmi<TAG>批量删除镜像$sudodockerrmi$(dockerimages-q-a)删除已经执行容器:$sudodockerrm容器ID 停止正在运行的容器:$sudodockerstop容器ID 启动镜像:$sudodockerr......
  • 卷积、激活、池化与批量归一化:深度学习中的关键操作
    在深度学习,尤其是卷积神经网络(CNN)中,卷积、激活、池化和批量归一化是四个基本操作。它们共同作用,帮助模型高效学习和提取数据中的重要特征。1.卷积操作作用卷积操作旨在通过滑动卷积核(过滤器)在输入数据上提取局部特征,如边缘和角点。过程滑动卷积核:卷积核在输入特征图上......
  • apk反编译修改教程系列-----修改apk 去除软件加固状态 实例操作步骤解析_2【二十八】
          今天继续以实例来演示去加固的步骤,app软件有加固就无法直接进行反编译修改操作。那么去加固就是修改软件的前提。作为初学的朋友,去加固后先测试app是都可以正常安装与打开。然后在进行对应的反编译修改操作。通过博文了解1------apk去加固的实例步骤演示......
  • 15 json常见操作与案例 序列化 反序列化
    json:本质是一个特定结构的字符串意义:打通不同编程语言之间进行相互通信时的数据格式问题。序列化(python数据类型转换成JSON格式化字符串)#python数据类型转换成JSON格式化字符串序列化importjson#python数据类型info={"code":1000,"message":"succes......
  • 【C++】string中常用的接口
    目录前言常用接口1.有/无参string2.字符串相加3.string类对象的访问及遍历操作3.1普通遍历3.2迭代器遍历3.3范围for4.string类对象的修改操作前言今天分享一些个人认为string常用的接口,大多数资料来自于cplusplus,其他不常用的平常查阅资料使用即可。需要测试代......
  • 一些常用的技巧分享
    0.前言最近很多uu们过来问鼠鼠一些c语言/python的问题,遂决定开一个答疑帖,方便大家学习交流。但是呢既然开了帖,也就不只讲有疑问的地方,顺便把常见的一些问题都给大家过一遍。又考虑到很多uu跟鼠鼠一样是电脑小白,也顺带分享一些电子产品、生活小知识。鼠鼠水平有限,内容仅供参考......