Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 大熊猫抛出错误_Python_Pandas - Fatal编程技术网

Python 大熊猫抛出错误

Python 大熊猫抛出错误,python,pandas,Python,Pandas,我试图在两个数据帧上捕获更改数据。逻辑是合并两个数据帧并按一个键分组,然后对计数大于1的组运行循环,以查看哪个列“已更新”。我犯了一个奇怪的错误。感谢您的帮助。 代码 我得到的错误是: AttributeError: Cannot access callable attribute 'iterrows' of 'DataFrameGroupBy' objects, try using the 'apply' method 非常感谢您的帮助。为什么不按照建议执行并使用应用?比如: def pri

我试图在两个数据帧上捕获更改数据。逻辑是合并两个数据帧并按一个键分组,然后对计数大于1的组运行循环,以查看哪个列“已更新”。我犯了一个奇怪的错误。感谢您的帮助。 代码

我得到的错误是:

AttributeError: Cannot access callable attribute 'iterrows' of 'DataFrameGroupBy' objects, try using the 'apply' method

非常感谢您的帮助。

为什么不按照建议执行并使用
应用
?比如:

def print_rows(rows):
    print rows

group_by_1.apply(print_rows)

您的
GroupBy
对象支持迭代,因此

for i,rows in group_by_1.iterrows():
    print("rownumber", i)
    print (rows)
你需要像这样做

for name, group in group_by_1:
    print name
    print group
然后,您可以对每个
组执行您需要执行的操作


请参见

分组操作的结果是分组,而不是数据帧。组不包含要迭代的行;实际上的问题不是打印行,而是如何访问组中的每一行并尝试执行列表/for循环类型的操作。我通过使用below解决了这个组问题,但遇到了一个问题,我无法“重新索引”行以运行内部for循环,如下所示:对于I,组中的行由组1:rows.reset\u index()rows.REINDEX(index=range(0,len(rows)))打印范围中的j(rows)(len(rows)-1):打印(j)打印(rows.loc[j,:])问题是,无论我尝试什么,它都会保留电子表格/数据框中的原始行号,并且不允许我运行内部for循环。失败的原因是:KeyError:“标签[2]不在[index]中。”打印只是基于您的代码的一个示例。目前的问题是访问iterrows,我使用apply提供了一个替代方案。如果你面临一个不同的问题,那么我建议你更新你的问题或者开始一个新的问题。
for name, group in group_by_1:
    print name
    print group