python func删除以前的pandas数据帧

时间:2015-07-10 13:34:53

标签: python pandas

我有这个功能可以很好地计算我需要的东西,但问题是,当我尝试将它保存到csv时,它是删除我之前计算的所有df ...请帮助

dc = {'A':df['RSI']}
df = pd.DataFrame(dc)

print df

def func(row):
    if (row[['A']] > 70).all():
        return -1
    elif (row[['A']] < 30).all():
        return 1
    else:
        return 0


df['D'] = df.apply(func, axis = 1)

3 个答案:

答案 0 :(得分:0)

您似乎在大多数编程语言中都希望append&#34;写&#34;在写任何东西之前,也会将文件截断为零长度。

答案 1 :(得分:0)

如果使用pandas.DataFrame.to_csv(your_arguments)编写文件,则默认模式参数为“w”,将使用新数据覆盖文件。请改为使用pandas.DataFrame.to_csv(your_arguments, mode='a')代替。

使用简单的python是一样的:

with open(filename, 'w') as f:

将覆盖文件

with open(filename, 'a') as f:

会将新行追加到现有文件中。

答案 2 :(得分:0)

更新:我已经设法使用这样的数组来解决问题:

field = []
field = pd.DataFrame(dc)
field = field.apply(func, axis = 1)
df['solution'] = pd.DataFrame(field)