当前位置:   article > 正文

Python复制dataframe中的每一行(每一行可根据需要出现的次数指定不同的复制量)_复制dataframe的某一行多遍

复制dataframe的某一行多遍

目录

1、数据

2、需求

3、查询

4、实现


1、数据

自己在做项目的时候,有两个Excel表格——一个是对日期去重了的Excel(365行),一个是原始的每天好几条数据的Excel

2、需求

想把前一个Excel按照后一个Excel的天数对应着进行扩充

3、查询

自己搜到了一篇文章,挺有帮助的,不过这篇文章是对每一条数据进行等量的复制。

4、实现

为了将其进行一般性的推广,写了一个计数的函数,总体代码如下。

  1. import pandas as pd
  2. import numpy as np
  3. def countX(lst, x):
  4. count = 0
  5. for ele in lst:
  6. if (ele == x):
  7. count = count + 1
  8. return count
  9. # date_1, date_2是2个Excel文件对应的日期列,用pandas读入
  10. cur_dir = '\\'.join(os.path.abspath(inspect.getsourcefile(lambda:0)).split('\\')[:-1])
  11. data_path_1 = os.path.join(cur_dir, 'xxx.xlsx') # 获取json文件路径
  12. df_1 = pd.read_excel(data_path_1, encoding='gbk')
  13. date_1 = df_1[['日期']].values.tolist()
  14. data_path_2 = os.path.join(cur_dir, 'yyy.xlsx') # 获取json文件路径
  15. df_2 = pd.read_excel(data_path_2, encoding='gbk')
  16. date_2 = df_2[['日期']].values.tolist()
  17. # 复制
  18. pd2 = pd.DataFrame()
  19. for i in range(len(df_2)):
  20. count = countX(date_1, date_2[i])
  21. if count == 0:
  22. print(i)
  23. continue
  24. else:
  25. a = df_2.loc[i]
  26. d = pd.DataFrame(a).T
  27. pd2 = pd2.append([d] * count)
  28. pd2.to_csv('zzz.csv', index=False, encoding='gbk')

关于读取文件地址or获取文件路径,可以参照读取文件地址or路径

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/153277
推荐阅读
相关标签
  

闽ICP备14008679号