timestamp_dfとpush_start_numという2つのdfがあり、以下の処理が実現できないか試しています。
今のところ、差集合を見つける記事などは見つけたのですが、それを元に以下の同じ内容の処理をしているものを見つけられず、何かアドバイスを頂ければと質問させて頂きました。
やりたいことは以下の通りになります。
①timestamp_df側にはあって、push_start_num側には無い日付をtimestamp_dfと同じ位置でpush_start_num側のインデックスとして取得し、値をnull,0,Noneのどれかにできればと考えております。なので、最終的にはdfBのインデックスの日付はtimestamp_dfと同じになりますが、元々push_start_num側には無いので値をnull,0,Noneとします。
目的
以下2つのdfを最後にconcatでまとめてデータベースで管理するのが目的です。dfBはcount部分をリストに格納し、それを再度df化し数字の部分だけ使います。
そこで2つのdfを繋げた際に、timestamp_df側には存在し、push_start_num側には存在しない日付があり、それぞれのdfの長さが異なっているため、最後に繋げた際にtimestamp_dfの日付に対するpush_start_numの数字にずれが生じているものの辻褄を直すためです。
内容も複雑ですし、私自身の説明もちゃんとお伝えできてるか不安ではありますが、もし何か使えそうなpandasなどのメソッドをご存知の方はいらっしゃいましたらご教授頂けると幸いです。
print(timestamp_df) 0 2021-04-29 1 2021-04-30 2 2021-05-01 3 2021-05-02 4 2021-05-03 .. ... 81 2021-05-29 82 2021-05-30 83 2021-05-31 84 2021-06-01 85 2021-05-21
print(push_start_num) push1_start_date 2021-04-29 3 2021-04-30 20 2021-05-01 24 2021-05-02 21 2021-05-03 14 2021-05-04 5 2021-05-05 14 2021-05-06 16 2021-05-07 17 2021-05-08 14 2021-05-11 78 2021-05-12 20 2021-05-13 13 2021-05-14 8 2021-05-15 18 2021-05-16 16 2021-05-17 16 2021-05-18 18 続く
timestamp_list = [] for c in push_date_df.columns: push_num = push_date_df.groupby(c)[c].count() for x in push_num.index: timestamp_list.append(x) timestamp_df = pd.DataFrame({'timestamp':timestamp_list}) push_start_df = pd.DataFrame() for c in push_start_col: push_start_df[c] = df[c] push_start_num_list = [] for c in push_start_df.columns: push_start_num = push_start_df.groupby(c)[c].count() print(push_start_num) for x in push_start_num: push_start_num_list.append(x)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/02 09:23