使用熊猫将值从一个列表追加到另一个列表

时间:2019-08-01 00:06:40

标签: python-3.x pandas dataframe

我有一个列表:

list_1 = ['2000-01-01', '2000-01-02', '2000-01-03', '2000-01-04']
list_2 = ['2PM', '3PM', '4PM']

我要合并列表,以使新列表看起来像这样:

list = ['2000-01-01 2PM', 
        '2000-01-01 3PM', 
        '2000-01-01 4PM', 
        '2000-01-02 2PM', 
        '2000-01-02 3PM', 
        '2000-01-02 4PM',
        ................
        '2000-01-04 4PM']

基本上,对于list_1的每个值,我都将list_2的每个值加一个空格。

我使用Python

for date in list_1:
  for hour in list_2:
     date +  " " + hour 

如何使用Pandas来做到这一点?

2 个答案:

答案 0 :(得分:1)

使用MultiIndexmap

pd.MultiIndex.from_product([list_1, list_2]).map(' '.join).tolist()

Out[129]:
['2000-01-01 2PM',
 '2000-01-01 3PM',
 '2000-01-01 4PM',
 '2000-01-02 2PM',
 '2000-01-02 3PM',
 '2000-01-02 4PM',
 '2000-01-03 2PM',
 '2000-01-03 3PM',
 '2000-01-03 4PM',
 '2000-01-04 2PM',
 '2000-01-04 3PM',
 '2000-01-04 4PM']

或使用itertools.product

from itertools import product
list(map(' '.join, product(list_1, list_2)))

Out[134]:
['2000-01-01 2PM',
 '2000-01-01 3PM',
 '2000-01-01 4PM',
 '2000-01-02 2PM',
 '2000-01-02 3PM',
 '2000-01-02 4PM',
 '2000-01-03 2PM',
 '2000-01-03 3PM',
 '2000-01-03 4PM',
 '2000-01-04 2PM',
 '2000-01-04 3PM',
 '2000-01-04 4PM']

答案 1 :(得分:1)

for loop

的用法
[x + ' ' + y for x in list_1 for y in list_2]
['2000-01-01 2PM', '2000-01-01 3PM', '2000-01-01 4PM', '2000-01-02 2PM', '2000-01-02 3PM', '2000-01-02 4PM', '2000-01-03 2PM', '2000-01-03 3PM', '2000-01-03 4PM', '2000-01-04 2PM', '2000-01-04 3PM', '2000-01-04 4PM']