为了账号安全,请及时绑定邮箱和手机立即绑定

需要在循环的帮助下对从 url 导入的多个 csv (1500 x 20) 文件的第一列执行列合并

需要在循环的帮助下对从 url 导入的多个 csv (1500 x 20) 文件的第一列执行列合并

UYOU 2023-03-16 09:55:36
对如何存储、访问和 mege dfs.c df 列具有相同的标题名称感到困惑。代码如下:for s in range(40):    # a func which returns historical business dates     ago_Ybd_0=     (date_by_adding_business_days(datetime.date(2020,7,17),s,Holiday))     year_0, month_0, day_0 = ago_Ybd_0.strftime("%Y-%b-%d").split("-")     month_0 = month_0.upper()    #import / unzip/ read file    !wget     'https://www.ukp.com/content/historical/{year_0}/{month_0}/cm{day_0}     {month_0}{year_0}kp.csv.zip'     !unzip 'uk{day_0}{month_0}{year_0}kp.csv.zip'    a_0=f'uk{day_0}{month_0}{year_0}kp.csv.zip'      # problem area     c=f'uk{day_0}{month_0}{year_0}'     c  = pd.read_csv(a_0,engine='python')  # merge eod_a=c.merge(c,on='SYSTEM',how='left')
查看完整描述

1 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

考虑构建一个数据框列表,然后调用concat水平合并:

def get_data(s):

    # a func which returns historical business dates 

    ago_Ybd_0 = (date_by_adding_business_days(datetime.date(2020, 7, 17), s, Holiday))

    year_0, month_0, day_0 = ago_Ybd_0.strftime("%Y-%b-%d").split("-")

    month_0 = month_0.upper()


    #import / unzip/ read file

    !wget 

    'https://www.ukp.com/content/historical/{year_0}/{month_0}/cm{day_0} 

    {month_0}{year_0}kp.csv.zip' 

    !unzip 'uk{day_0}{month_0}{year_0}kp.csv.zip'

    a_0=f'uk{day_0}{month_0}{year_0}kp.csv.zip' 


    # RETURN DATA FRAME, SETTING SYSTEM AS INDEX

    return pd.read_csv(a_0, engine='python', index_col='SYSTEM')


# BUILD LIST OF DFs VIA LIST COMPREHENSION

df_list = [get_data(s) for s in range(40)]


# BIND ALL DFs BY COLUMNS INTO SINGLE DF

final_df = pd.concat(df_list, axis='columns')


查看完整回答
反对 回复 2023-03-16
  • 1 回答
  • 0 关注
  • 107 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号