我有一系列的熊猫清单。现在,我需要一个包含所有列表的大列表。使用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()
的数百万行,但没有任何效果。它不会将其展平为一维数组。有人知道我如何才能有效地获得所需的解决方案吗?
答案 0 :(得分:0)
为我工作:
a = np.concatenate(df['msg']).tolist()
print (a)
['hi', 'hi', 'cat', 'dog', 'smoke', 'red']
或者:
from itertools import chain
a = list(chain.from_iterable(df['msg']))
print (a)
['hi', 'hi', 'cat', 'dog', 'smoke', 'red']:
或者:
a = [y for x in df['msg'] for y in x]
答案 1 :(得分:0)
您应该能够简单地运行np.array(df['msg'].sum())
。