我有一个由日期和值列组成的数据框,有点像这样:
>>> 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
我想替换日期' 2016-09-10'中value1
中的所有df['value']
。与value7
。 Date列是一个字符串系列。
我查看了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)
答案 0 :(得分:3)
怎么样
>> df.loc[(df['date'] == '2016-09-10') & (df['value'] == 'value1'), 'value'] = 'value7'
您可能需要阅读Indexing and Selecting Data部分和this了解更多信息
答案 1 :(得分:0)
如果你想保持其他一切并改变你需要的东西,试试这个,
df.loc[df['date'] == '2016-09-10' , 'value'] = 'value7'