【问题标题】:Iterating Pandas Series and replacing float values of given column迭代 Pandas 系列并替换给定列的浮点值
【发布时间】:2021-03-16 21:37:04
【问题描述】:

所以 Date 是一个设置为索引的时间戳,而 Value_col 是我想将前 6 个索引更改为与现在不同的值的列。

这是 CSV 文件包含的信息:

Date,Value_col
2012-01-01,5444.11111111111
2012-02-01,5555.2222222222
2012-03-01,3333.9629629629
2012-04-01,6666.5714285715
2012-05-01,7777.8965517242
2012-06-01,8888.3703703703
2012-07-01,9999.0

代码:

import pandas as pd 
  

y_var = pd.read_csv('name.csv')
y_var = y_var.set_index('Date')
y_var = y_var.squeeze()

输出数据类型:

for i,e in enumerate(y.iteritems()):
    print(i,e)

系列类型:

0 (Timestamp('2012-01-01 00:00:00', freq='MS'), 5444.11111111111)
1 (Timestamp('2012-02-01 00:00:00', freq='MS'), 5555.2222222222)
2 (Timestamp('2012-03-01 00:00:00', freq='MS'), 3333.9629629629)
3 (Timestamp('2012-04-01 00:00:00', freq='MS'), 6666.5714285715)
4 (Timestamp('2012-05-01 00:00:00', freq='MS'), 7777.8965517242)
5 (Timestamp('2012-06-01 00:00:00', freq='MS'), 8888.3703703703)
6 (Timestamp('2012-07-01 00:00:00', freq='MS'), 9999.0)

想法是将 5444.11111111111 更改为 150 000,例如,将 5555.2222222222 更改为 50 000,因此,应更改 Value_col 的每一行。

我试过了,但系列似乎不接受这种类型的转换

for i,e in enumerate(y_var.iteritems()):
    print(i,e)
    if 5444.11111111111 == e:
        y_var['Value_col'] = y['Value_col'].float.replace(5444.11111111111,1)

【问题讨论】:

  • 如果你知道索引,你可以使用y_var['Value_col'][index] = 150000
  • @Orhan Solak 在我的例子中,索引是时间戳 2012-01-01 00:00:00 作为第一个索引行,而需要替换的列的值在 Value_col 中,因为它是时间戳和时间序列,所以我什至不能用 y_var['Value_col'] 来定位 col 名称。 KeyError:'Value_col'
  • 我想我总是可以将整个系列恢复到 DataFrame 并替换值。但我认为它也应该可以直接在系列中使用

标签: python pandas datetime


【解决方案1】:

根据定义,系列是单变量的,因此在这种情况下,列的概念没有多大意义。

如果您可以将要替换的值作为映射字典,则可以这样做

dict_replace = {
    5444.11111111111: 150000,
    5555.2222222222: 50000
}
y_var.replace(dict_replace, inplace=True)

如果您不想更改原始变量,则可以不使用 inplace 标志:

y_new = y_var.replace(dict_replace)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-31
    • 1970-01-01
    • 2017-04-29
    • 2019-12-20
    • 1970-01-01
    • 2015-10-31
    • 2014-04-29
    • 2012-08-07
    相关资源
    最近更新 更多