在特定条件下连接两个数组?

阿德南

我需要连接两个大小不等的数组:

数组 1:

A = ["year","month","day","hour","minute","second", "a", "b", "c", "d"]
data1 = pd.read_csv('event_5.txt',sep='\t',names=A)
array1=data1[['year', 'month', 'day']]

数组 2:

B=["station", "phase", "hour", "minute", "second"]
arr_data = pd.read_csv('arrival_5.txt',sep='\t',names=B)
ar_t= arr_data[['hour', 'minute', 'second']]
array2 = pd.DataFrame(ar_t)

所需的输出如下所示:这里,[2019 11 9] 是数组 1 重新整形以匹配第二个数组的维度,然后连接。但是,在整形的情况下,我每次都需要检查第二个数组的维度。因此,我需要一个可以连接不等数组的自动化脚本。

Array-1:第一个数组总是具有相同的维度

        year  month  day
     0  2019     11    9

Array-2:可变维度列是固定的,但每次迭代的行都会改变:

    hour  minute  second
0     14      57   41.80
1     14      58    3.47
2     14      57   25.99
3     14      57   37.00
4     14      57   29.86
5     14      57   40.24
6     14      57   32.61
7     14      57   42.26
8     14      57   29.74
9     14      57   42.36
10    14      57   46.00
11    14      58    8.69
12    14      57   34.50
13    14      57   48.97
14    14      57   30.30
15    14      57   39.78
16    14      57   32.45
17    14      57   47.83
18    14      57   25.86
19    14      57   36.30
20    14      57   17.90
21    14      57   23.40
22    14      57   34.64
23    14      57   50.95
24    14      57   35.90
25    14      57   50.64

所需输出:

  Year  month  day  hour  minute  second
0   2019     11    9    14      57   41.80
1   2019     11    9    14      58    3.47
2   2019     11    9    14      57   25.99
3   2019     11    9    14      57   37.00
4   2019     11    9    14      57   29.86
5   2019     11    9    14      57   40.24
6   2019     11    9    14      57   32.61
7   2019     11    9    14      57   42.26
8   2019     11    9    14      57   29.74
9   2019     11    9    14      57   42.36
10  2019     11    9    14      57   46.00
11  2019     11    9    14      58    8.69
12  2019     11    9    14      57   34.50
13  2019     11    9    14      57   48.97
14  2019     11    9    14      57   30.30
15  2019     11    9    14      57   39.78
16  2019     11    9    14      57   32.45
17  2019     11    9    14      57   47.83
18  2019     11    9    14      57   25.86
19  2019     11    9    14      57   36.30
20  2019     11    9    14      57   17.90
21  2019     11    9    14      57   23.40
22  2019     11    9    14      57   34.64
23  2019     11    9    14      57   50.95
24  2019     11    9    14      57   35.90
25  2019     11    9    14      57   50.64
纵横交错

为 DataFrame 列分配一个常量值

如果您的第一个数组始终是单行数据框或单维数组,那么您可以只使用pandas为列分配一个常量值。

语法是my_dataframe["new_column"] = constant_value.

因为arr1是一个DataFrame,访问一个列会给我们一个Series。为了得到它的常数值,我们需要取由 0 或第一行索引的单元格中的值。

在你的情况下,这变成:

>>> type(arr1), type(arr2)
(pandas.core.frame.DataFrame, pandas.core.frame.DataFrame)
>>> arr2["year"] = arr1["year"].loc[0]
>>> arr2["month"] = arr1["month"].loc[0]
>>> arr2["day"] = arr1["day"].loc[0]
>>> arr2
    hours  minutes    seconds  year  month  day
0       9        6  22.001464  2019     11    9
1       8       21  28.412044  2019     11    9
2      10        7  22.433552  2019     11    9
3      18       37  19.551359  2019     11    9
4      19        1  40.722019  2019     11    9
..    ...      ...        ...   ...    ...  ...
95      2       16  48.368643  2019     11    9
96     19       22  25.034936  2019     11    9
97     10        0  20.163870  2019     11    9
98     16       35  27.251357  2019     11    9
99      8       26  54.200897  2019     11    9

请记住,这将就地工作,修改arr2对象。

访问 DataFrame 后面的 numpy 数组

如果你需要多维数组,你可以调用:

>>> arr2_np = arr2.to_numpy()

根据您的用例对列进行排序

如果您需要对列进行排序,您可以对它们采取不同的看法,如下所示:

>>> cols = arr2.columns.to_list()
>>> cols2 = cols[3:] + cols[:3]
>>> arr2[cols2] 
    year  month  day  hours  minutes    seconds
0   2019     11    9      9        6  22.001464
1   2019     11    9      8       21  28.412044
2   2019     11    9     10        7  22.433552
3   2019     11    9     18       37  19.551359
4   2019     11    9     19        1  40.722019
..   ...    ...  ...    ...      ...        ...
95  2019     11    9      2       16  48.368643
96  2019     11    9     19       22  25.034936
97  2019     11    9     10        0  20.163870
98  2019     11    9     16       35  27.251357
99  2019     11    9      8       26  54.200897

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在特定条件下合并两个 Pandas DataFrame

如何使用SQL Server在特定条件下从两个表中检索数据?

与表连接,但仅在特定条件下

Python-在特定条件下选择数组的行?

在特定条件下计算数组中的值

在特定条件下使用 dp 的可能数组的数量

通过在特定条件下添加具有特定值的字段从两个表中进行选择

将两个数组附加到具有特定条件的对象中

如何在给定条件下选择两个数组的元素?

熊猫在特定条件下繁殖

特定条件下的 Concat DataFrame

在特定条件下创建组

特定条件下的乘积

合并两个具有不同大小的列表,在特定条件下使用流API合并两个

在两个条件下对数组进行排序

如何在 Python 中同时为两个数组在给定条件下选择矩阵中的元素?

如何在特定条件下合并两行

两个组合,jQuery选择插件仅在特定条件下工作

如何在特定条件下提取数组中的最高和最低值?

Java PriorityQueue Comparator 在特定条件下插入二维数组

SAS:无法在特定条件下使用where或if条件。

在特定条件下获取数据集的特定值

比较两个数组的元素以及元素是否匹配然后在某些条件下修改另一个数组值的问题

根据特定条件合并两个数据集,同时保留特定列

计算特定条件下的出现次数

在特定条件下查找ArrayList中的值

如何在特定条件下更新JSON对象

仅在特定条件下插入 fscanf

获取特定条件下的数据透视值