1

我是一个 python 初学者,正在处理一个包含在线订单数据的大型 csv 文件。

我正在尝试查看人们最常使用特定 sku 购买的 sku,我们将其称为 gray-shirt711。

我正在努力表达如何说“显示所有包含gray-shirt771 和至少一个其他 sku 的订单”。我一直只是检索其中包含 gray-shirt711 的所有订单,其中 90% 的时间只是那个 sku。

假设我只处理这两列('sku' 和 'orderID'),我可以表达这个陈述的最简单的方式是什么?

谢谢!

4

1 回答 1

0

我们愿意提供帮助,但您需要更具体一点。你能提供一个你尝试过的例子吗?你能告诉我们你是如何读取数据的吗?正如 Boris 建议的那样,您可能希望使用 Pandas 来执行此操作。这是一个片段,它将在您选择的列上过滤数据框:

import pandas as pd
import numpy as np

d = {'col1': [1, 2], 'col2': [3, 4]} # Should be your data import line...
df = pd.DataFrame(np.random.randint(low=0, high=10, size=(100, 2)),
                   columns=['sku','orderID'])

#%% Alternatively, load your data using Pandas by uncommenting the lines below
# df = pd.read_excel('path_to_your_file') #If using excel

# Method 1
filter1 = 6 #replace 6 with grey-shirt771
filter2 = 3 # replace this with another sku of interest
df_items_of_interest1 = df[(df['sku'] == filter1) | (df['sku'] == filter2)]

# Method 2
filter1 = 'sku == 6'
filter2 = 'sku == 3'
df_items_of_interest2 = df.query(filter1 + '|' + filter2)

# Method 3
df_items_of_interest3 = df[df['sku'].isin([6,3])]

为清楚起见,请参阅此SO PostPandas 文档

我希望这会有所帮助。我代表 Stack Overflow 社区表示欢迎。为了最大限度地提高您从使用本网站中获得的价值(并帮助我们帮助您)尝试其中的一些技巧

于 2018-01-25T23:52:47.277 回答