lrh1983 2022-05-05 10:10 采纳率: 50%
浏览 112
已结题

关于python嵌套循环比较dataframe中数据的问题

各位,想处理一些数据,比较dataframe数据中两列数据的大小, 然后求出两列的值和比值,写了一段代码,但是总感觉哪里有问题,尤其是结束的那一部分。

df是数据包括很多列,[‘生产’, ‘销售’, ‘日期’, ‘部门’, ‘’地区, ‘材料’],要求,
1、如果生产大于销售,求差值和比值,添加‘diff’和‘差值’两列;
2、如果生产小于销售,差值和空值用NaN填充
3、最后的数据要有添加的两个计算列(‘diff’和‘差值’),还要保留其它的数据。

代码如下:
for j in df['生产']:
for k in df['销售']:
if j > k:
df['diff'] == df['生产'] - df['销售']
df['比值'] == df['生产'] / df['销售]
else:
df['diff'] == 'NaN' #负值使用空值填充
df['ratio'] == 'NaN' #使用空值填充
print(df.head(5))

  • 写回答

2条回答 默认 最新

  • 哥菜带 2022-05-05 12:05
    关注
    import pandas as pd
    data = [[1,2],[4,3]]
    df = pd.DataFrame(data,columns=['生产','销售'])
    df['diff'] = df['生产'] - df['销售']
    df['比值'] = df['生产'] / df['销售']
    print (df,'\n','-------------------------------------------------')
    for i in range(len(df)):
        if df.loc[i,'diff'] < 0:
            df.loc[i,'diff'] = 'NaN'
            df.loc[i, '比值'] = 'NaN'
    
    print(df)
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月6日
  • 已采纳回答 11月28日
  • 创建了问题 5月5日

悬赏问题

  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
  • ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
  • ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?
  • ¥20 看图片)删除这个自动化录屏脚本就一直报错找不到脚本文件,如何解决?(相关搜索:bat文件)
  • ¥750 关于一道数论方面的问题,求解答!(关键词-数学方法)
  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件