将Pandas DataFrame中的Numpy数组列拆分为多列
解决方法
要把包含Numpy数组的vectors列展开为独立的数值列,用Pandas可以轻松实现,以下是两种常用方法:
方法1:使用apply(pd.Series)(直观易懂)
import pandas as pd # 假设你的DataFrame名为df # 把vectors列的每个数组展开成单独的列 expanded_vectors = df['vectors'].apply(pd.Series) # 合并原表的key、text列和展开后的数值列 result = pd.concat([df[['key', 'text']], expanded_vectors], axis=1)
方法2:使用tolist()+pd.DataFrame(效率更高,适合大数据集)
如果数据量较大,这种方法的运行速度会更快:
import pandas as pd # 将vectors列的所有Numpy数组转成列表,再直接生成DataFrame expanded_vectors = pd.DataFrame(df['vectors'].tolist()) # 合并列 result = pd.concat([df[['key', 'text']], expanded_vectors], axis=1)
转换后效果
执行后会得到如下格式的DataFrame:
key text 0 1 ... 599 id 0 SAG-123 'some long text' 2.88 0.17 ... 1.56 1 SAG-596 'more text' 1.45 2.24 ... 3.46 2 SAG-888 'even more text' 1.45 2.24 ... 4.81
内容的提问来源于stack exchange,提问作者Roland
相关产品推荐
相关产品推荐

