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