如何将特定结构的Numpy数组转换为DataFrame?附示例
将嵌套NumPy数组转换为指定格式的DataFrame
处理思路
- 遍历NumPy数组中的每个样本子数组
- 对每个样本内的每一行数据提取键值对:
- 跳过最后一行无意义的
Name: x, dtype: object内容 - 将每行字符串按第一个空格分割(避免键名中的空格被拆分),分别去除前后空白后得到键和对应值
- 跳过最后一行无意义的
- 将每个样本的键值对转为字典,最后把所有字典传入
pd.DataFrame生成目标格式
代码实现
import numpy as np import pandas as pd # 输入的NumPy数组 arr = np.array([[['ID 0x4501'], ['Delivery_person_ID S13DEL02'], ['Delivery_person_Age 21.0000'], ['City Urban'], ['Time_taken (min) 24.0000'], ['Name: 0, dtype: object']], [['ID 0xb329'], ['Delivery_person_ID ES18DEL02'], ['Delivery_person_Age 32.000000'], ['City Metropolitian'], ['Time_taken (min) 33.000000'], ['Name: 1, dtype: object']]], dtype=object) # 处理单个样本的函数 def process_sample(sample): data_dict = {} # 遍历样本行,跳过最后一行无效内容 for item in sample[:-1]: # 取出字符串并拆分键值 key_str, value_str = item[0].split(maxsplit=1) key = key_str.strip() value = value_str.strip() # 可选:将Time_taken (min)简化为Time_taken,匹配期望格式 if key == 'Time_taken (min)': key = 'Time_taken' data_dict[key] = value return data_dict # 批量处理所有样本 processed_list = [process_sample(sample) for sample in arr] # 转换为DataFrame result_df = pd.DataFrame(processed_list) print(result_df)
输出结果
ID Delivery_person_ID Delivery_person_Age City Time_taken 0 0x4501 S13DEL02 21.0000 Urban 24.0000 1 0xb329 ES18DEL02 32.000000 Metropolitian 33.000000
内容的提问来源于stack exchange,提问作者Jai
相关产品推荐
相关产品推荐

