通过循环覆盖数据帧中的数据,但不存储更改

时间:2019-03-31 03:48:31

标签: python pandas dataframe

我需要向dataframe中的某些单元格添加一些字符。当我在循环中打印xx时,这些值是所需的。但是当我打印整个dataframe时,值没有改变:

for row in df['Time from AtoC']:
    if ':' not in row:
        xx = "00:" + row
#         print(xx)
        df.at['Time from AtoC'] = xx

    else:
        df.at['Time from AtoC'] = row

我得到的结果是

  

当我只有100条时,有179行数据,其中一些值仍然保留   保持不变(前面没有00:)。

1 个答案:

答案 0 :(得分:0)

如果您不尝试将00(即字符串)添加到时间的前面,您似乎在尝试将它们加在该时间的前面?您可以将决策逻辑放入函数中,然后立即将其全部应用于列。 (作为奖励,您可以使用匿名函数(lambda)在同一行中完成所有操作。

def add_00(time):
   if ':' not in time:
       return "00:" + time
   return time

df['Time from AtoC'] = df['Time from AtoC'].apply(add_00)