Suppose I have a series profile that contains:
settings-win.data.microsoft.com 1
www.facebook.com 0.4
clients4.google.com 1
plus.google.com 0.86
And a list new_val that contains:
[0.8408964152537145, 0, 1.5, 0]
How do I replace all the values in my profile series with the list? It should be:
settings-win.data.microsoft.com 0.8408964152537145
www.facebook.com 0
clients4.google.com 1.5
plus.google.com 0
I tried the .replace() of Series but it doesn't seem to work.
PS. I'm also confused on how and when to use .replace() so if you could explain it further, it will be very appreciated.
I think you can create new Series with index of old Series s and values of list 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
But maybe better is replace or map by dictionary, but result is different, because first and third value is same - 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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With