【问题标题】:Creating a new column by summing previous ones with pandas error通过将以前的列与 pandas 错误相加来创建新列
【发布时间】:2020-12-15 21:02:43
【问题描述】:

这是我的文件图片,上面是原始文件,下面是我运行代码后得到的:https://imgur.com/a/zUCGart

这是我的代码:

import pandas as pd

path = r'C:\Users\myname\Downloads\RGB.xlsx'
df = pd.read_excel(path)
df['RGB'] = df.iloc[1:7:,:5:8].sum(axis=1)
df.to_excel(path)

基本上我想做的是创建一个名为 RGB 的新列,并将红色、蓝色和绿色列的值相加,因此我做了 1:7:,:5:8,将其应用于所有行和 5.,6。和 7. (red,blue,green) 列,但它只是使 RGB 等于黑色(第一)列...

不知道我在这里做错了什么。

我的原始数据框:

  Black  Orange  Yellow  Brown  Blue   Green  Red
      7       4       3      1      6      7    2
      3       3       3      8      4      5    2
      6       7       3      2      2      2    5
      2       9       2      2      2      2    2
      5       5       5      5      5      5    5
      2       2       8      2     27      8    2

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您的代码中有一些额外的分号,位于df.iloc[1:7:,:5:8]。尝试没有它们。让我知道它是否有效,否则我会提供更通用的解决方案。

    import pandas as pd
    
    path = r'C:\Users\myname\Downloads\RGB.xlsx'
    df = pd.read_excel(path)
    df['RGB'] = df.iloc[1:7,5:8].sum(axis=1)
    df.to_excel(path)
    

    【讨论】:

    • 这解决了问题,非常感谢!我认为 df.iloc 的语法是 [:,:] my bad
    • 可以,但只有一个分号。不要忘记支持/接受支持答案。干杯!
    【解决方案2】:

    你应该可以这样做。

    df['RGB'] = df['Red'] + df['Green'] + df['Blue']
    

    【讨论】:

    • 谢谢!我需要对代码的不同部分执行此操作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多