使用数据帧操作时的一些问题

2024-09-29 06:34:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框,其中一些值按日期排序,如果某个日期的某个项目没有值,则按NaN排序。对于每个值,我想用该值的log减去第一个值的log,而不是列中的NaN值来替换它。我编写了以下代码:

for x in AntCris.columns:
  aux=AntCris[x].dropna()
  aux2=aux.iloc[0]
  for y in AntCris[x].values:
    if np.isnan(y)==True:
      b=2
    else:
      a=np.log(y)-np.log(aux2)
      AntCris[x]=AntCris[x].replace([y],a)

我知道这不是很有效,我是一个该死的初学者。关键是数据帧在操作enter image description here之前是这样的 但是在执行代码之后,我得到了'Oro'和'Bonos'的第一个非NaN值变成了-inf,就像它是0的对数一样,但它不是。我不知道我如何才能解决它,甚至不知道为什么会发生这种情况

我还收到这个输出警告:/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:8: RuntimeWarning: invalid value encountered in log。我知道它们发生在“Oro”和“SP500”列中,正如我在每个操作中所写的print(x),但我想知道确切的索引或一些信息,以便检查发生了什么。我怎么能这样做


Tags: columns数据项目代码inlogfor排序