连接单个Pandas DataFrame中的列



我有4列的DataFrame,想合并在一个新的DataFrame的前3列。

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

import pandas as pd 

data = [['tom', 'nick', 'john', 10], ['bob', 'jane', 'nick', 15]] 
df = pd.DataFrame(data, columns = ['col1', 'col2', 'col3','col4'])

所需DataFrame

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

我该怎么做?

下面是在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

最新更新