使用2个现有数组

时间:2018-01-12 07:45:39

标签: python arrays numpy

美好的一天先生/Maám,

我对python,numpy,pandas和matplotlib的世界都很陌生。虽然我学到很多,但我现在陷入困境。我通常使用Excel,可以在没有问题的情况下在VBA和MS Query中解决这个问题,但速度很慢。我看过Numpy文档,搜索过网络和这个资源,但我找不到任何与此问题相关的内容。

我遇到的问题是一个阵列中的车辆登记列表和另一个阵列中的日期列表,这些列表对于我执行的每项任务都会发生变化。我想创建一个新的阵列,它是车辆登记和日期的组合,用于进一步分析。

实施例: 100个车辆登记和4000个日期的阵列如下:

Veh_reg = np.arange([‘0001’,’0100’) 

date_array = np.arange(‘2010-01-01’,…. ‘2018-01-02’,…., dtype = np.datetime64) 

我需要创建一个新的数组/数据框,列出每个单独的车辆注册,每个日期对应它。如:

Reg     Date

0001    2010-01-01

0001    2018-01-02……

0001    last date in date_array.

虽然两个阵列都在迭代......

0100    2010-01-01

0100    2018-01-02….

0100    last date in date_array.

我尝试过使用for和while循环而根本没有运气。我确信这是一个简单的解决方案,我只是没有得到。

2 个答案:

答案 0 :(得分:0)

我不确定我是否理解你的问题,看来你只想要两个数组的元素的所有组合,这是正确的吗? 如果是这样,你可以这样做:

import numpy as np
cars = [1, 2]
dates = [3, 4]
result = np.stack(np.meshgrid(cars, dates), -1).reshape(-1, 2)

或普通Python(没有numpy):

result = []
for c in cars:
    for d in dates:
        result.append([c,d])

我这里提供了基本类型的示例,因为您没有在您的问题中提供工作代码。

答案 1 :(得分:-1)

import numpy as np
import pandas as pd
Veh_reg = np.array(['0001','0100'])
date_array = np.array(['date1', 'date2'])
df = pd.DataFrame({'Veh_reg':Veh_reg, 'date_array':date_array})