簡體   English   中英

熊貓-用另一個數據框的值填充一個數據框的每一行

[英]Pandas - Filling each rows of one Dataframe with value from another Dataframe

我有兩個數據框,一個帶有日期集(df1),另一個帶有emp_ids(df2)。 我正在嘗試創建一個新的數據框,以便將df2中的每個emp_id標記為df1中的每個日期。

以下是我的數據框的外觀

df1

2018-01-01
2018-01-02
2018-01-03
2018-01-04

df2

emp_1
emp_2
emp_3

預期產量:

2018-01-01,emp_1
2018-01-02,emp_1
2018-01-03,emp_1
2018-01-04,emp_1
2018-01-01,emp_2
2018-01-02,emp_2
2018-01-03,emp_2
2018-01-04,emp_2
2018-01-01,emp_3
2018-01-02,emp_3
2018-01-03,emp_3
2018-01-04,emp_3

我將日期列轉換為字符串,並嘗試執行以下操作,但返回了空的數據框

我嘗試做pd.merge(df1, df2])

您想要做的就是稱為carthesian product pandas您可以這樣做:

df1['key'] = 0
df2['key'] = 0

result = df1.merge(df2, how='outer').drop('key',axis= 1)

編輯:證明它有效

df1 = pd.DataFrame(['2018-01-01','2018-01-02','2018-01-03','2018-01-04'],columns=['date'])
df2 = pd.DataFrame(['emp_1','emp_2','emp_3'],columns=['id'])

# res
df1['key'] = 0
df2['key'] = 0

res = df1.merge(df2, how='outer').drop('key',axis= 1)

# print
print(res.sort_values('id'))

安慰 :

    date        id
0   2018-01-01  emp_1
3   2018-01-02  emp_1
6   2018-01-03  emp_1
9   2018-01-04  emp_1
1   2018-01-01  emp_2
4   2018-01-02  emp_2
7   2018-01-03  emp_2
10  2018-01-04  emp_2
2   2018-01-01  emp_3
5   2018-01-02  emp_3
8   2018-01-03  emp_3
11  2018-01-04  emp_3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM