2つのデータフレームがあります。1つは日付のセット(df1)で、もう1つはemp_idのセット(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
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加