python - 使用 python 脚本推断 excel 文件中的数据

标签 python mysql excel pandas extrapolation

我有一些国家/地区的给定数据集,其中包含以下字段:

DATE
SOURCE COMPANY 
DESTINATION COMPANY 
QUANTITY
UNITS

我有 2 天的数据,我需要用每个公司的日期和数量值推断一年的数据,并在 Excel 中打印结果。

我需要将每个公司 x 1 行交付给每个公司 y,为期 1 年。日期可以是从 2018 年至今,数量可以有 +/- 100 的差异。

代码

import pandas as pd 
import numpy as np 
import os 
import datetime 
import random 
import sys 
from datetime import timedelta 

df = pd.read_csv("Location") 
df_1 = df 
for i in range(1,366): 
  for i in range(0,df.shape[0]): 
    df['Quantity'][i] = df['Quantity'][i] + random.randint(-100,100)    
    df['Date'][i] = pd.to_datetime(df['Date'])[i] + timedelta(days = -1)

df_1 = pd.concat([df_1,df]) 
df_1.to_csv("Extrapolated_data.csv",sep = '')

但是它消耗的时间是 Not Acceptable ,我该如何让它变得更好

最佳答案

我认为您在问题评论中发布的代码存在一些问题,您必须注意:

    df_1.to_csv() 参数中的
  1. sep 需要设置为字符,即“,”或“;” (请参阅 here ),否则,如果您不想使用其他分隔符,则只需省略它即可“,”
  2. 您的源文件中没有 .csv 扩展名(这可能完全没问题)
  3. 分配df_1 = df不仅会复制DataFrame的列/元数据,还会复制DataFrame包括所有数据。这将产生一个包含原始数据和生成数据的文件。

更新代码

由于我对 pandas 还很陌生,所以我看不到只迭代行的方法,而是必须迭代行和列,从而产生下面的代码。我的示例文件总共大约有 40 行,结果文件大约有 13.000 行,文件大小为 619 KB。创建时间为 60,007 秒。从代码中删除时间计算和随机性将创建时间减少到 54.38 秒。这不是 super 快,但我也不认为这是 super 慢。

import pandas as pd 
import numpy as np 
import os 
import datetime 
import random 
import sys 
from datetime import timedelta 
from timeit import default_timer as timer

df = pd.read_csv("orders.csv") 
df_1 = pd.DataFrame(columns=df.columns) 
start = timer()

for d in range(1,366):
  for index, dfc in df.iterrows():

    dfc['Quantity'] = dfc['Quantity'] + random.randint(-100,100)    
    dfc['Date'] = pd.to_datetime(dfc['Date']) + timedelta(days = -d)
    df_1 = df_1.append(dfc, ignore_index=True)

  print("Loop ",d)  

end = timer()
print(end - start) 

df_1.to_csv("Extrapolated_data.csv",sep = ',')

关于python - 使用 python 脚本推断 excel 文件中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55495395/

相关文章:

python - 从 Python 执行 C++ 代码时出现段错误——在 Mac OS 上使用 Boost.Python

python - 解析 XML lxml 我应该跳过或删除注释阻止解析吗

mysql - 获取当前用户 ID 并存储它

excel - 如何创建超链接数组(Excel VBA)?

mysql - Excel 2016 在数据中连接到 MySQL 从数据库进行新查询

python - 在 Python/NumPy 中加速多项式随机样本

python - 将多个应用程序和监听器添加到 NGINX 单元

php - 使用 php 连接到 mysql 数据库时出现问题

php - 使用 wordpress 从联系表 7 将数据插入 mysql

excel - 更改 VBA 中的单元格数据类型?