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

关于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日