【问题标题】:Python warningsPython 警告
【发布时间】:2019-10-18 14:31:14
【问题描述】:

输入:我的文件

预期输出:

amountFile=pd.read_excel("myfile")
amountFile['total_amount']=amountFile.groupby('ID')["item_amount"].transform('sum')
amountFile.to_excel('file location')

上面是我的代码,通过计算每个项目中的项目金额总和来计算新的总金额列。它工作正常,但我收到警告,所以我担心这是一个问题。

请参阅文档中的注意事项:http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy amountFile['total_amount']=amountFile['total_amount']=amountFile.groupby('ID')["item_amount"].transform('sum') C:/Users/JasnaRaghavan/PycharmProjects/PobImportScript/testReconsile.py:40: SettingWithCopyWarning: 试图在 DataFrame 中的切片副本上设置一个值。 尝试改用 .loc[row_indexer,col_indexer] = value

【问题讨论】:

    标签: python dataframe transform


    【解决方案1】:

    我已经运行了您的代码,但没有遇到同样的错误。但是,如果您收到该警告,则意味着 Pandas 无法保证您是在处理列本身(即 DataFrame 的切片)还是切片的副本。

    您可以尝试改用.loc 来访问该列。您的代码将如下所示:

    amountFile.loc[:, 'total_amount'] = amountFile.groupby('ID')["item_amount"].transform('sum')
    

    【讨论】:

    • 好的,谢谢.. 实际上我将一个特定的数据帧一分为二,其中这个数量的文件是一个数据帧。是这个原因吗。。切片的副本是什么意思?我是 python 新手,很抱歉这个小问题。
    • 可能。不确定您前面的代码是什么,但可以尝试添加 .copy() 例如amountFile = your_first_dataframe["some_column_name"].copy().
    猜你喜欢
    • 2021-12-12
    • 1970-01-01
    • 2017-08-22
    • 2014-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-14
    • 2018-03-03
    相关资源
    最近更新 更多