python教程,dataframe如何通过ndarray解决数据插入需求?
发布于 作者:苏南大叔 来源:程序如此灵动~
pandas.dataframe和numpy.ndarray是python里面的两个高级数据类型,他们和python最基础的list类型有着千丝万缕的联系。本文描述,不直接对dataframe类型进行操作,而转成ndarray来实现数据插入的问题。这么操作的原因是:苏南大叔认为ndarray的函数操作起来更加方便。

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程所学所想。测试环境:win10,python@3.11.0,numpy@1.24.2,pandas@1.5.3。本文对于dataframe插入一行或一列数据的事情,另辟蹊径,曲线采用ndarray类型来完成这个需求。
前文回顾
这里可以对前文进行回顾,以加深对本文的理解。相关文章有:
- https://newsn.net/say/pandas-dataframe.html
- https://newsn.net/say/dataframe-ndarray.html
- https://newsn.net/say/python-ndarray.html
这两个pandas.dataframe和numpy.ndarray数据类型插入数据的方式:
在上面两篇文章里面,可以看到,关于插入数据这个需求,ndarray的相关操作要比dataframe更加合理好用。所以,本文中,苏南大叔试图通过ndarray来实现类似的需求。本文描述的内容,和下面这篇文章有些类似:
本文的理论基础是:
获得数值:
df.values获得标签:
df.columns
df.index获得标签的数组:
df.columns.values.tolist()
df.index.values.tolist()通过numpy插入一列数据
测试代码:
import numpy as np
import pandas as pd
df = pd.DataFrame({"姓名": ["老许", "虎子"],"种类": ["猫", "狗"], "重量": ["10", "20"]})
df2 = pd.DataFrame(np.insert(df.values, 1, values=['50', '36'], axis=1))
tmp = df.columns.values.tolist()
tmp.insert(1,"高度")
df2.columns = tmp
print(df2)输出:
姓名 高度 种类 重量
0 老许 50 猫 10
1 虎子 36 狗 20
通过numpy插入一行数据
测试代码:
import numpy as np
import pandas as pd
df = pd.DataFrame({"姓名": ["老许", "虎子"],"种类": ["猫", "狗"], "重量": ["10", "20"]})
df2 = pd.DataFrame(np.insert(df.values, 1, values=['二赖子', '狗','25'], axis=0))
df2.columns = df.columns
print(df2)输出:
姓名 种类 重量
0 老许 猫 10
1 二赖子 狗 25
2 虎子 狗 20
结束语
如果你需要插入的是多行数据,可以参考ndarray的数据插入篇内容,做出更多例子。
更多python教程,请点击苏南大叔的博客文章: