python合并从for循环创建的新列

大陆

我想将从for循环生成的列合并到主数据帧。问题是生成列和主df都有不同的日期时间。这本来很简单,但我遇到了一些问题。Main df具有很多天的日期时间数据,频率为1小时。我有一个for循环来生成1s频率的新数据。我想将此数据附加到主df中的新列。我遇到了一些错误。

我的代码:

main_df = 
                       col_A
2019-10-01 09:19:40    10
2019-10-02 09:20:15    20
main_df['new_col'] = ""
for i in main_df.index.date.unique():
   aux_df = day_fun(i) # day_fun generates 1s frequency data under new_col
   # aux_df index is datetime, column is new_col
   main_df['new_col'].loc[i] = pd.concat([main_df, aux_df], axis=1).reindex(main_df.index)
   df['new_col'].loc[i] = aux_df['new_col']

    #for example, aux_df will have following data for 
    # for i='2019-10-01'
    #                      new_col
    #2019-10-01 09:19:40    100
    #2019-10-01 09:21:29    200
    # for i='2019-10-02'
    #                      new_col
    #2019-10-02 09:20:15    300
    #2019-10-02 09:22:39    400

当前输出:

 raise ValueError("Incompatible indexer with DataFrame")

ValueError: Incompatible indexer with DataFrame

预期产量:

main_df = 
                       col_A   new_col
2019-10-01 09:19:40    10      100
2019-10-02 09:20:15    20      300

使用mergeasof以防万一,请记住将日期强制为datetime

#main_df['date']=pd.to_datetime(main_df['date'])
main_df=main_df.set_index('date').drop(columns=['d','t'])
  print(main_df)

                      col_A
date                      
2019-10-01 09:19:40     10
2019-10-02 09:20:15     20

#aux_df['date']=pd.to_datetime(aux_df['date'])
aux_df=aux_df.set_index('date').drop(columns=['d','t'])
    print(aux_df)

                      new_col
date                        
2019-10-01 09:19:40      100
2019-10-01 09:21:29      200
2019-10-02 09:20:15      300
2019-10-02 09:22:39      400

# Append one day artifical data to the main_df
for i in main_df.index.strftime('%Y-%m-%d').unique():
    aux_df = day_fun(i) # generate artifical data for ith day
    main_df.loc[i] = pd.merge_asof(main_df.loc[i], aux_df, left_index=True, right_index=True)

     

                      col_A  new_col
      date                               
2019-10-01 09:19:40     10      100
2019-10-02 09:20:15     20      300

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 for 循环创建新列

来自分类Dev

使用arraylist散列映射并从中创建新的arraylist

来自分类Dev

Groupby汇总并从行单元格创建新列

来自分类Dev

创建合并大于 0 的列名的新列

来自分类Dev

如何合并表并从上一个表创建新记录(如果缺少)?

来自分类Dev

合并从循环返回的Numpy数组

来自分类Dev

合并从循环返回的Numpy数组

来自分类Dev

在循环内创建新列或应用

来自分类Dev

for循环迭代以在R中创建新列

来自分类Dev

合并两个不重叠的列并创建新列

来自分类Dev

拆分并从列值中取出一部分字符串,然后在 Pandas python 中创建新列

来自分类Dev

Python:在for循环中创建新的列名

来自分类Dev

在python中循环创建新的数据帧

来自分类Dev

将函数应用于两个DataFrame列并从结果中创建新列

来自分类Dev

Pandas DataFrame:如何按列中的值分组并从分组值中创建新列

来自分类Dev

如何使用python中的循环在数据框中创建新列

来自分类Dev

使用groupby并合并以在熊猫中创建新列

来自分类Dev

根据设置值组合并创建新列

来自分类Dev

熊猫合并数据框并旋转创建新列

来自分类Dev

如何读入多个 .csv 文件,合并并创建新列?

来自分类Dev

使用 for 循环 i R 根据循环内创建的列创建新列

来自分类Dev

Python:从现有列创建新列

来自分类Dev

循环和制作新列python

来自分类Dev

循环创建新对象

来自分类Dev

创建新的用户循环

来自分类Dev

对于循环R,使用输出创建并填充新列

来自分类Dev

根据不同的数据集循环创建新列

来自分类Dev

如何使用mutate和for循环创建新列?

来自分类Dev

熊猫使用groupby创建新列并避免循环

Related 相关文章

热门标签

归档