【发布时间】:2020-08-10 05:22:12
【问题描述】:
我正在编写一个代码来分析不同产品的销售频率(StockCode),所以这是获取频率的代码:
stockCode = df['StockCode'].values.tolist()
non_repeated_list = []
frequencies = []
list2d= []
for i in stockCode:
if i not in non_repeated_list:
non_repeated_list.append(i)
for i in non_repeated_list:
a = stockCode.count(i)
frequencies.append(a)
然后用list2d = np.column_stack((non_repeated_list, frequencies)) 将两个列表堆叠在一个二维列表中,这样我就可以对它们进行排序:
print(sorted(list2d,key=lambda x:x[-1], reverse=True))
但是当我打印出来时它说:
[array(['22139', '993'], dtype='<U12'), array(['22911', '99'], dtype='<U12'), array(['17012D', '99'], dtype='<U12')...
所以我想问一下,我怎样才能得到 [] 之间的行?
【问题讨论】:
-
你能提供一个示例数据框吗?我认为, for 循环不是必需的。我们可以直接从dataframe中获取。
-
不要以“摆脱”这种或那种显示符号的方式思考。显示是次要的,是打印对象的产物。尝试了解显示器显示的内容。在这里,您有一个数组列表(或数组),每个数组都包含字符串。分别查看
non_repeated_list和frequencies。你真的需要将它们组合成一个数组吗?
标签: python arrays pandas list numpy