Python Pandas Dataframe将相同会话的另一个单元格的值替换为单元格值

时间:2018-05-28 07:24:16

标签: python-3.x pandas dataframe bigdata data-analysis

我使用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

出于安全考虑,我只提供相关信息

1 个答案:

答案 0 :(得分:0)

从iterrows返回的行是副本,因此它们不会覆盖原始数据帧。使用引用原始数据帧的另一种形式的迭代器。

Updating value in iterrow for pandas

(我也完全确定你要做的是什么,但本能地看起来非常低效 - 我怀疑有一些自然的熊猫方法可以做你想要在一两行中实现的,查找其中的地方( )方法)