KDB技术问题:如何将表的字典转换为单个表?
合并字典中的所有表值为单个表
以下是几种常见场景的实现方法:
1. 字典值为一维列表
假设你的字典结构如下:
table_dict = { 'group1': [1, 2, 3], 'group2': [4, 5, 6], 'group3': [7, 8, 9] }
方法1:列表推导式
直接遍历所有值列表并拼接:
merged_list = [item for sublist in table_dict.values() for item in sublist] # 输出:[1, 2, 3, 4, 5, 6, 7, 8, 9]
方法2:用itertools.chain(适合大数据量)
效率更高,避免创建中间列表:
import itertools merged_list = list(itertools.chain.from_iterable(table_dict.values()))
2. 字典值为Pandas DataFrame(二维表)
如果每个值都是Pandas的DataFrame:
import pandas as pd table_dict = { 'df1': pd.DataFrame({'name': ['Alice', 'Bob'], 'age': [25, 30]}), 'df2': pd.DataFrame({'name': ['Charlie', 'Diana'], 'age': [35, 40]}) }
用pd.concat()合并:
merged_df = pd.concat(table_dict.values(), ignore_index=True)
ignore_index=True会重置合并后的索引,避免索引重复。如果需要保留原索引,可省略该参数。
3. 字典值为NumPy数组
若值是NumPy数组:
import numpy as np table_dict = { 'arr1': np.array([10, 20, 30]), 'arr2': np.array([40, 50, 60]) }
用np.concatenate()合并:
merged_arr = np.concatenate(list(table_dict.values()))
内容的提问来源于stack exchange,提问作者Contango
相关产品推荐
相关产品推荐

