首页 > 解决方案 > 加入单个 Pandas DataFrame 中的列

问题描述

我有 4 列的 DataFrame,并希望将前 3 列合并到一个新的 DataFrame 中。

数据相同,顺序无关,必须保留任何重复项。

import pandas as pd 
   
data = [['tom', 'nick', 'john', 10], ['bob', 'jane', 'nick', 15]] 

df = pd.DataFrame(data, columns = ['col1', 'col2', 'col3','col4'])

所需的数据框

+-----+-----+
|col_a|col_b|
+-----+-----+
|tom  |10   |
|nick |10   |
|john |10   |
|bob  |15   |
|jane |15   |
|nick |15   |
+-----+-----+

我该怎么做?

标签: pythonpandasdataframe

解决方案


这是在以下帮助下合并前三列的一种方法numpy

a = df.values
pd.DataFrame({'col_a': np.ravel(a[:, :3]), 'col_b': np.repeat(a[:, 3], 3)})

  col_a col_b
0   tom    10
1  nick    10
2  john    10
3   bob    15
4  jane    15
5  nick    15

推荐阅读