从列表中替换pandas系列的值

时间:2016-02-17 07:51:18

标签: python list pandas series

假设我有一个系列profile,其中包含:

settings-win.data.microsoft.com    1
www.facebook.com                   0.4
clients4.google.com                1
plus.google.com                    0.86

包含以下内容的列表new_val

[0.8408964152537145, 0, 1.5, 0]

如何使用列表替换profile系列中的所有值?它应该是:

settings-win.data.microsoft.com    0.8408964152537145
www.facebook.com                   0
clients4.google.com                1.5
plus.google.com                    0

我尝试了.replace()的{​​{1}},但它似乎无效。

PS 即可。我也对如何以及何时使用Series感到困惑,所以如果你能进一步解释它,我们将非常感激。

1 个答案:

答案 0 :(得分:2)

我认为您可以使用channel.basic_publish(exchange='', routing_key='task_queue', body=message, properties=pika.BasicProperties( delivery_mode = 2, # make message persistent )) Series index Series以及列表s的值创建新的li

print s
settings-win.data.microsoft.com    1.00
www.facebook.com                   0.40
clients4.google.com                1.00
plus.google.com                    0.86
Name: profile, dtype: float64

new_val = [0.8408964152537145, 0, 1.5, 0]
s1 = pd.Series(new_val, index=s.index, name='profile')

print s1
settings-win.data.microsoft.com    0.840896
www.facebook.com                   0.000000
clients4.google.com                1.500000
plus.google.com                    0.000000
Name: profile, dtype: float64

dictionary可能更好replacemap,但结果不同,因为第一和第三个值相同 - doc

d = {1: 0.8408964152537145, 0.4: 0, 0.86: 0}
print d
{1: 0.8408964152537145, 0.4: 0, 0.86: 0}

print s.replace(d)
settings-win.data.microsoft.com    0.840896
www.facebook.com                   0.000000
clients4.google.com                0.840896
plus.google.com                    0.000000
Name: profile, dtype: float64

print s.map(d)
settings-win.data.microsoft.com    0.840896
www.facebook.com                   0.000000
clients4.google.com                0.840896
plus.google.com                    0.000000
Name: profile, dtype: float64