熊猫-用另一个数据框的值填充一个数据框的每一行

时间:2019-01-14 10:40:48

标签: python pandas 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])

1 个答案:

答案 0 :(得分:2)

您要尝试的操作称为com.jcraft.jsch.JSchException: Auth fail at com.jcraft.jsch.Session.connect(Session.java:519) at com.jcraft.jsch.Session.connect(Session.java:183) at com.jcraft.jsch.Session$connect$6.call(Unknown Source) 。在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'))