Python Pandas 向DataFrame中添加一行一列

Python Pandas 向DataFrame中添加一行一列,第1张

在Pandas的DataFrame中添加一行或者一列,添加行有 df.loc[] 以及 df.append() 这两种方法,添加列有 df[] 和 df.insert() 两种方法, 下面对这几种方法的使用进行简单介绍。

采用 loc[] 方法多适用于对空的dataframe循环遍历添加行,这样索引可以从0开始直到数据结果,不会存在索引冲突的问题。

不过在使用insert的过程中发现 454: DeprecationWarning: `input_splitter` is deprecated since IPython 7.0, prefer `input_transformer_manager`. status, indent_spaces = self.shell.input_splitter.check_complete(code) 这个提示,猜测是有别的地方出问题了,还需要调试。

主要参考资料:

dataframe的表如下

如果需要复制 ,就在索引的位置直接赋值即可

如果要给dataframe的cell赋值为list,注意需要提前转换

建议参考一下dataframe文档,里面有相应的方法,不需要使用for循环遍历,for循环遍历会拖慢程序。对于dataframe中数据检索可以使用下面的方法。

【全部】df.values

【name列的数据】df['name'].values

【loc检索A列】df.loc['A']

【iloc进行行检索】df.iloc[0]

【直接使用名字进行列检索,但不适合行检索】df['name']

第一步:准备一些数据

根据你的描述生成的一堆数据

定义一些变量

TOPLST = ['A', 'B', 'C']   # top10

PATH = 'test.xls'            # 我生成的Excel测试文件位置

第二步:根据描述,你需要对比两个序列之间是否有交集?

这里简单定义一个函数(当然也可以不这样做):

def checkLst(lst1, lst2):

# 如果两个列表中有相同值,则返回True

for item in lst1:

if item in lst2:

return True

return False

第三步:实现我们的需求:这里主要还是使用索引,掌握dataframe的函数基础上,如何使用这些接口函数很重要。这里简单几行实现数据清洗功能。

def clearData(path, toplst):

df = pandas.read_excel(path)

# 找到需要判断的mesh列

mesh = df['mesh']

# 清除队列

clearilst = []

# 遍历每一行数据mesh.index是RangeIndex实例

for index in mesh.index:

# 判断top10和mesh列中是否有交集,如果没有交集则将索引加入删除队列

if not checkLst(toplst, mesh.iloc[index].split('')):

# 将没有交集的行索引添加至清洗列表

clearilst.append(index)

# 清洗结果赋值

result = df.drop(index=clearilst, axis=0)

return result

完整的代码截图如下:

程序源代码

我们来看下运行效果:

运行效果展示

完美运行,不用 *** 心索引+1的问题,也不用再创建一个DataFrame实例!

希望能够采纳!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11556838.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存