【发布时间】:2018-08-11 02:06:10
【问题描述】:
我有一系列熊猫列表。现在我需要一个包含所有列表的大列表。使用df.msg.values 我会得到这样的结果:
array([list(['hi']), list(['hi', 'cat', 'dog']), list(['smoke', 'red']),...)
现在的输出应该是一个像这样的 numpy 数组:
['hi', 'hi', 'cat', 'dog', 'smoke', 'red',...]
我的工作解决方案是连接所有列表的 for 循环。
tok = tokenized.msg.dropna()
1darr= np.array([])
for m in tok :
1darr = np.concatenate([1darr, m])
由于np.concatenate() 可能会在数百万行中变慢,所以我尝试了np.ravel() 或np.flatten(),但没有任何效果。它不会将其展平为一维数组。有人知道我怎样才能有效地得到我想要的解决方案吗?
【问题讨论】:
-
这里最好的解决方案可能是完全避免你的问题——退后一步,弄清楚如何避免出现一系列 Python 列表。这本身就是低效的。
-
我们正在使用 DataFrames,现在我不能只改变我的整个系统。这就是为什么我尝试通过
values获取系列的numpy 数组然后进行操作的原因。最后我只需要专栏的词汇。
标签: python arrays pandas numpy