df.replace()未转换为文本或csv文件

时间:2019-10-07 19:35:09

标签: python pandas dataframe replace

当我使用时:     df = df.replace(oldvalue,newvalue) 它会替换文件,但是当我尝试将新数据框放入文本文件或csv文件时,它不会更新,并且继续是替换之前的原始输出。

我要从两个文件中获取数据,然后尝试将它们添加在一起。现在,我正在尝试更改格式以匹配原始格式。

我尝试更改替换的位置,并多次编辑df.replace命令以包含regrex = True,to_replace,value =和其他小东西。以下是一小段代码示例。

    drdf['adg'] = adgvals #adds adg values into dataframe 
    for column, valuex in drdf.iteritems():
        #value = value.replace('444.000', '444.0')
        for indv in valuex:
            valuex = valuex.replace('444.000', '444.0')
        for difindv in valuex: 
            fourspace = '    ' 
            if len(difindv) == 2:
                indv1 = difindv + fourspace
                value1 = valuex.replace(difindv, indv1)
            drdf = drdf.replace(to_replace=valuex, value=value1)

    #Transfers new dataframe into new text file
    np.savetxt(r'/Users/username/test.txt', drdf.values, fmt='%s', delimiter='' )
    drdf.to_csv(r'/Users/username/089010219.tot')

它应该替换值(例如用40(40个空格)替换40。在spyder界面中执行此操作,但不会转换为正在创建的文件。

2 个答案:

答案 0 :(得分:0)

这就是我要使用map的方式:

drdf['adg'] = adgvals #adds adg values into dataframe 
   for column, valuex in drdf.iteritems():
       #value = value.replace('444.000', '444.0')
       for indv in valuex:
           valuex = valuex.map('444.000':'444.0')
       for difindv in valuex: 
           fourspace = '    ' 
           if len(difindv) == 2:
               indv1 = difindv + fourspace
               value1 = valuex.map(difindv:indv1)
           drdf = drdf.replace(valuex,value1)

#Transfers new dataframe into new text file
np.savetxt(r'/Users/username/test.txt', drdf.values, fmt='%s', delimiter='' )
drdf.to_csv(r'/Users/username/089010219.tot')

答案 1 :(得分:0)

您尝试过吗:

df.replace(old, new, inplace=True)

在某些情况下,Inplace本质上会将新值替换为旧值。但是,我并不是声称知道就地的所有内部技术工作原理。