pandas如何灵活增加新的空字段

 更新时间:2023年08月15日 09:29:24   作者:距离&  
这篇文章主要介绍了pandas如何灵活增加新的空字段问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

pandas灵活增加新的空字段

先说需求

从mongodb中读取数据的某些字段(如A,B,C,D),如果数据没有某个字段(如‘D’字段),就增加该字段且值为空

解决方法

import pandas as pd
import numpy as np
a=np.array([[1,2,3],[4,5,6],[7,8,9]])
df1=pd.DataFrame(a,index=['row0','row1','row2'],columns=list('ABC'))
df1

df1结果:

df1的结果

创建空的且有指定字段的dataframe

df2 = pd.DataFrame(columns=['A','B','C','D'])

再通过pd.concat方法连接

pd.concat([df2,df1])

最后的结果如下:

Python pandas数据清洗,按条件赋值空字段

Python pandas按条件赋值空字段

找到空值,并查看空值的有关规律

旅游数据中节省字段部分为空,考虑使用目的地的均值赋值给对应的空值;有北京到西安的旅程的节省为空,过程中需要:

1、找到节省字段为空的行列:

import numpy as np
import pandas as pd
data[data['节省'].isnull()]

2、提取其中的目的地:

data.loc[data['节省'].isnull(),['目的地']]

3、各个目的地及出发地的均值:

round(data.groupby(['目的地','出发地'])['节省'].mean())

使用fillna函数解决问题:

1、建立一个新的DataFrame用以装入更新后数据

2、获得目的地情况

3、赋值目的地均值到目的地空值

4、将处理后数据丢进新的DataFrame

5、将2-4步骤进行循环

datafillna = pd.DataFrame()
place = data.目的地.unique()
for pla in place:
    t = data.目的地 == pla
    print(t)
    a = data[t].fillna(data[t].mean())
    print(a)
    datafillna = datafillna.append(a)
    break

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python中进程的调度算法详解

    Python中进程的调度算法详解

    这篇文章主要介绍了Python中进程的调度算法详解,要想多个进程交替运行,操作系统必须对这些进程进行调度,这个调度也不是随即进行的,而是需要遵循一定的法则,由此就有了进程的调度算法,需要的朋友可以参考下
    2023-07-07
  • Python调用C语言的方法【基于ctypes模块】

    Python调用C语言的方法【基于ctypes模块】

    这篇文章主要介绍了Python调用C语言的方法,涉及Python基于ctypes模块调用C语言编译后的动态链接库文件相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • Python面向对象编程之类的概念

    Python面向对象编程之类的概念

    这篇文章主要介绍了Python面向对象编程之类的概念,Python语言的中所有数据类型都是对象、函数是对象、模块是对象;所有类都是继承最基础的类object,面向对象编程又叫OOP,下文了解更多具体内容,需要的朋友可以参考一下
    2021-11-11
  • python实现简单通讯录管理系统

    python实现简单通讯录管理系统

    这篇文章主要为大家详细介绍了python实现简单通讯录管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Python+Plotly绘制精美的数据分析图

    Python+Plotly绘制精美的数据分析图

    Plotly 是目前已知的Python最强绘图库,比Echarts还强大许多。它的绘制通过生成一个web页面完成,并且支持调整图像大小,动态调节参数。本文将利用Plotly绘制精美的数据分析图,感兴趣的可以了解一下
    2022-05-05
  • Python实现LM算法的示例代码

    Python实现LM算法的示例代码

    L-M方法全称Levenberg-Marquardt方法,是一种非线性最小二乘优化算法,这篇文章整理了该算法的Python和C++实现方法,需要的可以参考一下
    2023-06-06
  • Python socket如何实现服务端和客户端数据传输(TCP)

    Python socket如何实现服务端和客户端数据传输(TCP)

    这篇文章主要介绍了Python socket如何实现服务端和客户端数据传输(TCP),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • react+django清除浏览器缓存的几种方法小结

    react+django清除浏览器缓存的几种方法小结

    今天小编就为大家分享一篇react+django清除浏览器缓存的几种方法小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Python实现将JSON格式文件导入redis

    Python实现将JSON格式文件导入redis

    这篇文章主要为大家详细介绍了Python实现将JSON格式文件导入redis的多种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-01-01
  • 使用python和Django完成博客数据库的迁移方法

    使用python和Django完成博客数据库的迁移方法

    下面小编就为大家分享一篇使用python和Django完成博客数据库的迁移方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01

最新评论