パンダのデータフレームを再サンプリングし、異なる機能を異なる列に適用したい。問題は、文字列で列を正しく処理できないことです。文字列を " - "のような区切り文字とマージする関数を適用したいと思います。これはデータの例です。resample Pandasのデータフレームと列内の文字列をマージする
import pandas as pd
import numpy as np
idx = pd.date_range('2017-01-31', '2017-02-03')
data=list([[1,10,"ok"],[2,20,"merge"],[3,30,"us"]])
dates=pd.DatetimeIndex(['2017-01-31','2017-02-03','2017-02-03'])
d=pd.DataFrame(data, index=,columns=list('ABC'))
A B C
2017-01-31 1 10 ok
2017-02-03 2 20 merge
2017-02-03 3 30 us
合計と平均アグリゲータを使用して数値列AとBを再サンプリングします。列Cしかし、和の作品の種類(しかし、それは何かが失敗することを意味するかもしれない2番目の場所に置かれます)。
d.resample('D').agg({'A': sum, 'B': np.mean, 'C': sum})
A C B
2017-01-31 1.0 a 10.0
2017-02-01 NaN 0 NaN
2017-02-02 NaN 0 NaN
2017-02-03 5.0 merge us 25.0
私はこれを取得したいと思います:
...
2017-02-03 5.0 merge - us 25.0
私はさまざまな方法ではなく(図示せず)が成功せず、ラムダを使用してみました。
2番目の関連する質問をすることができます:このために後処理を行うことはできますが、紛失したセルを別の列に0または ""で埋める方法はありますか?コラム'C'
ため
IIUCする必要があり、あなたは欠損値を埋めるために)(df.fillnaを使用することができます。 https://pandas.pydata.org/pandas-docs/stable/missing_data.html – Evan
確かに、別の列に異なる置換(たとえば、0、なし、 "")を適用してください。私はそれを行うより豪華な方法があるかどうか疑問に思っていた。 – aless80