繁体   English   中英

如果满足不同行中的条件,请替换数据框中的字符串

[英]Replace string in dataframe if a condition in a different row is met

我有一个由日期和值列组成的数据框,有点像这样:

>>> df
         date   value
0  2016-09-10  value1
1  2016-09-10  value1
2  2016-09-10  value2
3  2016-09-10  value1
4  2016-09-12  value3
5  2016-09-12  value1
6  2016-09-13  value2
7  2016-09-13  value1

我想用value7日期为'2016-09-10'的df['value']中的所有value1 日期列是一个字符串系列。

我查看了pd.DataFrame.replace()的文档,但找不到基于单独列的条件替换参数。 有很多丑陋的方法可以做到这一点( for使用.loc循环可以解决问题),但是有人知道一种不错的,一两行或更多pythonic的方法吗? 提前致谢!

如果您希望这个迷你虚拟数据框可以尝试:

import pandas as pd

data = {'date': ['2016-09-10', '2016-09-10',
                 '2016-09-10', '2016-09-10',
                 '2016-09-12', '2016-09-12',
                 '2016-09-13', '2016-09-13'],
        'value': ['value1', 'value1', 'value2', 'value1',
                  'value3', 'value1', 'value2', 'value1']}

df = pd.DataFrame(data)

怎么样

>> df.loc[(df['date'] == '2016-09-10') & (df['value'] == 'value1'), 'value'] = 'value7'

您可能需要阅读索引和选择数据部分, 为更多信息

如果您希望其他所有内容保持不变并更改所需内容,请尝试以下方法,

df.loc[df['date'] == '2016-09-10' , 'value'] = 'value7'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM