df = pd.DataFrame(columns = ['Date','Data'])
# input some random data into df
test_log = pd.DataFrame(columns = ['Date','Data'])
def test_func(date, data):
if data > 2:
data = data * 2
d = {'Date':date, 'data':data}
return d
df.apply(lambda x: test_func(x['Date'],x['Data']), axis=1)
まず、これは一連の辞書d
を返しません。 apply
で使用されている関数(test_func
)が単一の値を返すと、applyメソッドから系列が返されますが、関数 'test_func'から辞書を返すと、df.applyメソッドはdfの値を戻り値に置き換えます。複数の引数を指定して新しいパンダデータフレームを作成する関数を適用する
私はそれが値を持つtest_log
がd
がtest_func
EDITによって辞書返され
test_log = test_log.append(d, ignore_index=True)
すなわち追加test_func
返す何か、その後、df
内のすべての行にtest_func
を実行したい:
次の場合、DataFrameを返します。
def test_func(date, data):
if data > 2:
data = data * 2
d = {'Date':date, 'data':data}
return pd.Series(d)
は[MCVE]を提供してください。 – MYGz
これは、実際のコードの関数ははるかに複雑です。これは本質的に最も単純なプロセスです。 –
再現性のある問題と最終的な結果が得られれば、迅速な解決策が得られます。そうでなければ、私たちは線の間を読んで、あなたが達成しようとしていることを見つけなければなりません。それは両当事者にとって時間の最大の利益ではありません。 – MYGz