【问题标题】:check values of other columns if current column includes a string如果当前列包含字符串,则检查其他列的值
【发布时间】:2020-11-23 14:44:10
【问题描述】:

我想检查我的第一列,看看字符串是否包含特定的子字符串。如果是,我想从其他列中获取值。例如,

First      Second     Third
Jan,12        1          111
Feb,13        3          89
Jan,9        7          90

对于单词 Jan 出现的每一行,我想为该行提取 Second 和 Third 的值并将它们附加到不同的列表中。我试过这个来获取作为样本的值,但它只是给了我真假。

print(df_performance['Jan' in df_performance['First']]['Second'].values)

【问题讨论】:

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


    【解决方案1】:

    检查contains + loc

    df.loc[df['First'].str.contains('Jan'),'Second']
    Out[287]: 
    0    1
    2    7
    Name: Second, dtype: int64
    

    【讨论】:

    • 我怎样才能对所有的行都这样做?是否可以获得通过这种方法获得的值的总和?或者我们可以一次为多个列执行此操作吗?
    • @a125 检查df.loc[df['First'].str.contains('Jan'),['Second','Third']].sum()
    • 对于大多数情况,我需要一个总和,但对于一种情况,我需要一个平均值。有没有办法计算进入每个类别的行数?例如,df.loc[df['month].str.contains('jan'),['check']].sum())),如果我知道 'jan' 出现的行数,我可以简单地将最终总和相除。
    • @a125 df.loc[df['month].str.contains('jan'),['check']].value_counts()
    • 它说 AttributeError: 'DataFrame' object has no attribute 'value_counts'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-16
    • 2018-08-27
    • 2020-02-14
    • 2019-09-01
    相关资源
    最近更新 更多