【问题标题】:Iterate over pairs of columns and add value from one under condition in new column Python迭代成对的列并在新列 Python 中从一个条件下添加值
【发布时间】:2022-11-02 22:14:02
【问题描述】:

我有数据框,其中包含用户行为中的步骤/操作。提供样品。有很多步骤。每个步骤包含两列:副标题和维度。 我需要为每个步骤新列合并列副标题和维度 - 如果维度为空,则仅保留副标题,如果不保留仅维度。

所以新列 step0 值:如果 df['dimension1 (step0)'] 不是空值,则使用 df['dimension1 (step0)] 如果 df['dimension 1 (step0)] 为空,则使用 df['subtitle (step0)'] 然后重复第 1 步。

我是完全的新手。

预期输出:

df['step0'] 的值:客户端、主页、内部 df['step1'] 的值:客户端、客户端、地图

等等

请提供代码帮助

【问题讨论】:

  • 您的“数据框”已经是矩阵了吗?您可能需要发布一些实际数据或实际代码。如果你有一个矩阵,你可以索引数据,然后使用 if 和 elif 语句来创建一个新的数据集。然后将其输出到csv。

标签: python pandas dataframe


【解决方案1】:

假设idVisit 是索引。然后你可以在每一个奇数列(dimension)和每一个偶数列(subtitle)上尝试.combine_first()方法:

for n, (subtitle, dimension) in enumerate(zip(df.columns[0::2], df.columns[1::2])):
    df[f'step {n}'] = df[dimension].combine_first(df[subtitle])
# show only added columns
df.iloc[:, 8:]

输出:

# shown only the new columns 
          step 0    step 1   step 2     step 3
idVisit             
1         client    client   client     client
2         homepage  client   homepage   client
3         internal  map      internal   map

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-14
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 2020-10-15
    相关资源
    最近更新 更多