Pythonのパンダはきちんとしています。私は辞書のリストをパンダのデータフレームに置き換えようとしています。しかし、for-loopで行単位で値を簡単に変更できる方法があるのでしょうか?パンダのデータフレームを行単位で編集
trialList = [
{'no':1, 'condition':2, 'response':''},
{'no':2, 'condition':1, 'response':''},
{'no':3, 'condition':1, 'response':''}
] # ... and so on
for trial in trialList:
# Do something and collect response
trial['response'] = 'the answer!'
...とtrial
はそれに戻って参照しているため、今trialList
は、更新された値が含まれています。ここでは
は非パンダのdictのバージョンです。とても便利な!しかし、ディクテーションのリストは、特に私がパンダが優秀なものを列方向に計算できるようにするためには、非常に不安です。
私が何かパンダ-などを行うことによって、より良い、それを作ることができてもだから私は、上からtrialListを与えられた:
import pandas as pd
dfTrials = pd.DataFrame(trialList) # makes a nice 3-column dataframe with 3 rows
for trial in dfTrials.iterrows():
# do something and collect response
trials[1]['response'] = 'the answer!'
...しかしtrialList
は、ここで変更されません。行ごとに値を更新する簡単な方法はありますか?おそらくdict-versionと同等ですか?参加者には多くの試行が行われ、各試行ごとにさまざまなデータが収集されるため、これは行単位で行うことが重要です。
ありがとうございました!一番のものは私が必要なものです。私が望むほど美しくない/シンプルではないが、それは機能する。 –
@Jonasポイントは、ベクトル化された解が常に最も速くなることです。ローごとに反復するのは**スロー**です(通常避けることができます)。 –
私の場合、被験者が実験を経て、データが収集される前に分析を「オンライン」にする必要があるため、データは試用版で更新されます。したがって、一度にすべての行に対する操作は不可能です。 –