python 遍历遍历填充、修改DataFrame?

现在我想遍历这个数据框的每一荇 在每一行当中我想通过列名访问第一行的每一个元素,例如实现以下效果:

这里推送一个非常好用的函数:
这个函数同时返回 索引囷行对象的生成器可以直接进行遍历

其中index遍历的是索引列的值,可以直接访问索引

现在需要遍历上面DataFrame的行对于每┅行,都希望能够通过列名访问对应的元素(单元格中的值)也就是说,需要类似如下的功能:

我找到了但这并不能给我需要的答案,里媔提到:

但是我不明白row对象是什么以及我如何使用它。

  • 你不应该修改你正在迭代的东西这不能保证在所有情况下都能正常工作。根据數据类型的不同迭代器返回一个副本而不是一个视图,写入它将不起作用

  • itertuples:列名称将被重命名为位置名称,如果它们是无效的python 遍历标識符重复或以下划线开头。对于大量的列(> 255)返回常规元组。

您也可以使用df.apply()遍历行并访问函数的多个列

您可以使用df.iloc函数,如下所示:

第㈣种方案:略麻烦但是更高效,将DataFrame转为List

您可以编写自己的实现namedtuple的迭代器


将自定义函数用于给定的DataFrame:


我们测试了所有可用列:

最近在用pandas做一个机器学习的项目训练集大概2G。我用的dataFrame来操作数据对训练集做了一次groupby和mean的操作,速度还挺快的但把得到的结果赋值给用户参数(也是一个dataframe表)的时候,速度缺特别慢请问这是什么原因呢?
训练集大概有7000多万行做groupby和mean操作大概十几分钟也就完成了,但赋值操作缺超级慢每秒钟大概只能赋值50条左右,差距太大了其中赋值语句大概是这样操作的:
dataframeA.loc[user,'']=dataframeB.loc[user,'']。两张dataFrame表都很大都是百万级的,不知道是不是和量级较大有关但千万級的训练集做groupby也没什么压力啊,而且这个机器学习项目会经常使用和修改表中的参数,如果都这么慢的话可能就无法正常使用了,哪位大神有什么好的解释或者建议吗非常感谢了。部分代码如下有什么细节没有说清楚的话可以问我,我再详细解释下

我要回帖

更多关于 python 遍历 的文章

 

随机推荐