增量数据追加,iloc[-1] 问题

来源:4-3 数据准备:从本地读取数据

qq_404_8

2021-06-06

我使用的python 以及pandas版本:
Python version:3.8.5 (default, Sep 3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)]
Pandas version:1.2.4

在追加增量数据时,iloc[-1] 不生效,会追加重复的数据,改为iloc[1]后就会去重重复数据
图片描述
图片描述
图片描述

改为iloc[1] 后正常去重重复数据,感觉是不是pandas版本问题?
图片描述

写回答

2回答

DeltaF

2021-06-08

不应该吧?因为.iloc[-1]只是获取最后一个日期,如果是iloc[1],意思是取第2个值,-1表示取最后一个,会不会是之前误操作?还有个方式,万一取重了,用drop_duplicates日期一样的预防一下也可以

0
1
qq_404_8
看错了,是我本地数据问题,老师代码没问题~
2021-06-08
共1条回复

weixin_慕雪6047608

2021-06-27

分享一下我个人的处理方式,我从文件中直接取最大日期,然后再运算加1,可以参加一下

df_local = st.get_csv_data(stock_code, '../Data/price',usecols=['date'])
max_date_str = df_local['date'].max()
max_date_str = max_date_str.replace(r'/', '-')   # 把 '/' 转换成 '-'
# print(max_date_str)
max_date = datetime.strptime(max_date_str, '%Y-%m-%d')
max_date_next = (max_date+timedelta(days=1)).strftime("%Y-%m-%d")
get_csv_data做了简单的改造
def get_csv_data(code,file_type,usecols=None):
    """
    获取csv文件
    :param code:
    :param file_type: price finance
    :param usecols:  需要返回的列,元素为字符串的列表
    :return: DataFrame
    """
    file_root = data_root + file_type + '/' + code + '.csv'
    return pd.read_csv(file_root,usecols=usecols)


0
0

程序员理财课 Python量化交易系统实战

打造一个自动交易平台,新手也能提升理财收益

2059 学习 · 416 问题

查看课程