Python 是否有一种方法可以将两个列表与来自xarray数据变量的相应信息连接起来?

Python 是否有一种方法可以将两个列表与来自xarray数据变量的相应信息连接起来?,python,pandas,numpy,python-xarray,Python,Pandas,Numpy,Python Xarray,我有两个列表,列表1和列表2 list1 = [wind_speed_0, wind_speed_1, wind_direction_0, wind_direction_1] list2 = [serial_num_0, serial_num_1] 这些列表中的项目实际上是属于xarray数据集的数据变量的名称 本质上,如果列表2中的最后一个字符与列表1中的最后一个字符匹配,那么我希望获取列表2中每个项目的对应序列号,并将其附加到列表1中的项目上 例如:“abc123”是

我有两个列表,列表1和列表2

list1 = [wind_speed_0, wind_speed_1, wind_direction_0, 
         wind_direction_1]

list2 = [serial_num_0, serial_num_1]
这些列表中的项目实际上是属于xarray数据集的数据变量的名称

本质上,如果列表2中的最后一个字符与列表1中的最后一个字符匹配,那么我希望获取列表2中每个项目的对应序列号,并将其附加到列表1中的项目上

例如:“abc123”是分配给serial_num_0的序列号,“abc456”是分配给serial_num_1的序列号。因此,我想以如下所示的列表3结束:

list3 = [wind_speed_abc123, wind_speed_abc456, 
        wind_direction_abc123,wind_direction_abc456]
有没有一个简单的方法让我忘记了

这就是我到目前为止所做的:

# Collect all possible items for lists from xarray dataset object

want_variables = ['wind_speed_.*','wind_direction_.*']
serial_nums = ['serial_num_.*']

# Give me all of the data variables found in my xarray dataset

obj_variables = list(ds.data_vars) 

# Use for loops to create list1 and list2

for var in want_variables:
    r = re.compile(var)
    list1 = list(filter(r.match, obj_variables))

    for ii in serial_nums:
        rr = re.compile(ii)
        list2 = list(filter(rr.match, obj_variables))

这使我得到了list1和list2,但我不确定从这里走到哪里。

我建议使用匹配序列作为参考字典的索引,该字典将每个值存储在一个键(列)下:


我建议使用匹配序列作为参考字典的索引,参考字典将每个值存储在一个键(列)下:


我的解决方案解决了你的问题吗?我的解决方案解决了你的问题吗?
import pandas as pd
import re

# build the regular expression
pattern = re.compile('_([0-9]+)')

# build a lambda to use in for loop
f = lambda x: int(pattern.findall(x)[0])


ref_dict = {}

# assign all data to idx & cols:
for x in list1 + list2:
  idx = f(x)
  col = x.split('_'+str(idx))[0]
  if idx not in ref_dict.keys():
    ref_dict[idx] = {col:x}
  else:
    ref_dict[idx][col] = x

df = pd.DataFrame(ref_dict).T 

print(df)
#      serial_num    wind_direction    wind_speed
# 0  serial_num_0  wind_direction_0  wind_speed_0
# 1  serial_num_1  wind_direction_1  wind_speed_1