You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

处理Pandas数据后,如何将含dtype的数组元素转为纯订单号列表?

解决方法

问题原因

你用np.nditer遍历numpy数组时,取出的每个order是numpy标量对象(比如numpy.int64),直接添加到列表里就会显示成array(5555555, dtype=int64)格式。要得到纯数值列表,需要把这些标量转成Python原生的数值类型,或者换更简洁的pandas操作方式。

方法1:迭代时转换为原生类型

修改循环里的代码,把每个order转成int再添加,同时修正判断逻辑(原代码直接判断二维数组的in操作会失效):

import pandas as pd
import numpy as np

dataBI = pd.read_csv("U:/eu_inventory/EO BI Orders.csv")
dataOrderTrimmed = dataBI.iloc[:,1:2].values

dataVA05 = pd.read_csv("U:/eu_inventory/VA05_Export.csv")  # 路径统一用/或转义\\,避免转义问题
dataVAOrderFlat = dataVA05.iloc[:,1:2].values.flatten()  # 转成一维数组用于判断

ordersInBoth = []
ordersInBI = []
ordersInVA = []

for order in np.nditer(dataOrderTrimmed):
    order_val = int(order)
    if order_val in dataVAOrderFlat:
        ordersInBoth.append(order_val)
    else:
        ordersInBI.append(order_val)

方法2:提前转成Python列表再遍历

先把numpy数组转成纯Python列表,遍历直接拿到数值,同时用集合提升判断效率:

import pandas as pd
import numpy as np

dataBI = pd.read_csv("U:/eu_inventory/EO BI Orders.csv")
# 转成一维Python列表
dataOrderList = dataBI.iloc[:,1:2].values.flatten().tolist()

dataVA05 = pd.read_csv("U:/eu_inventory/VA05_Export.csv")
# 转成集合,判断in操作的效率更高
dataVAOrderSet = set(dataVA05.iloc[:,1:2].values.flatten().tolist())

ordersInBoth = []
ordersInBI = []

for order in dataOrderList:
    if order in dataVAOrderSet:
        ordersInBoth.append(order)
    else:
        ordersInBI.append(order)

方法3:用pandas内置方法(最简洁高效)

完全不用手动循环,利用pandas的isin方法直接筛选,规避numpy类型问题:

import pandas as pd

dataBI = pd.read_csv("U:/eu_inventory/EO BI Orders.csv")
bi_orders = dataBI.iloc[:, 1]  # 提取指定列作为Series

dataVA05 = pd.read_csv("U:/eu_inventory/VA05_Export.csv")
va_orders = dataVA05.iloc[:, 1]

# 直接筛选交集、BI独有、VA独有的订单
ordersInBoth = bi_orders[bi_orders.isin(va_orders)].tolist()
ordersInBI = bi_orders[~bi_orders.isin(va_orders)].tolist()
ordersInVA = va_orders[~va_orders.isin(bi_orders)].tolist()

内容的提问来源于stack exchange,提问作者Kole Davis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 02:31:16