我使用Python Pandas Dataframe对某些日志进行数据分析。 我有一个类似的csv: number_items event_type ...... ...... session_id ...... ......
我的问题是在我的会话中有不同类型的事件,其中只有一个事件有number_items。或者,numbers_items是我感兴趣的。
所以我想看到的是每个事件的每个参数如何影响number_items。
所以,我想做的是: 将包含它的事件的number_items(始终是会话中的最后一个)复制到会话的所有其他事件。将不同Dataframe中的每个event_type分开(以避免存在大量空值,因为该属性与事件不对应)并对其进行分析。
我在第一部分被阻止了
我试过这样的事情:
currentSession = '0'
currentItems = 0
for index, row in reversed(df.iterrows()) :
if row['session_id'] == currentSession :
row['number_items'] = currentItems
else :
currentSession = row['session_id']
currentItems = row['number_items']
显然,它不起作用,我只是想表明这个想法。
我是Python的新手,所以我很感激一些帮助。
由于
编辑:数据样本here
出于安全考虑,我只提供相关信息
答案 0 :(得分:0)
从iterrows返回的行是副本,因此它们不会覆盖原始数据帧。使用引用原始数据帧的另一种形式的迭代器。
见Updating value in iterrow for pandas
(我也完全确定你要做的是什么,但本能地看起来非常低效 - 我怀疑有一些自然的熊猫方法可以做你想要在一两行中实现的,查找其中的地方( )方法)