- 主题:怎么改变一个series的一部分值,另一部分保留
比如series1为 values= [1,2,3,4,5],index=[a,b,c,d,e]
series2为 values=[88,99,100],index=[c,d,e]
我的需求是要用series2的c,d,e的值去替代series1的c,d,e的对应值,其他的值保持不变。
直接赋值series1=series2试了不行,Index [a,b]的对应值被变成nan了。
--
FROM 27.18.18.*
for i in s1.index:
try:
s1[i]=s2[i]
except KeyError:
pass
--
FROM 172.105.208.*
没简单点的,一行搞定那种。
【 在 a1923cc 的大作中提到: 】
: for i in s1.index:
: try:
: s1[i]=s2[i]
: ...................
--
FROM 27.18.18.*
s1.tolist()[2:5]=s2.tolist() #但这个写法太死了,只能针对你的这个例子,不能做到只要有相同的Index就用第二个Series替换。如果实在想一行解决任意替代,把一楼的做个函数吧。我不知道是否python有现成的。
--
FROM 194.50.170.*
a.loc[b.index] = b.values
【 在 formydream 的大作中提到: 】
: 没简单点的,一行搞定那种。
--
FROM 68.197.87.*
直接s1[s2.index]=s2
【 在 formydream 的大作中提到: 】
: 没简单点的,一行搞定那种。
--
FROM 27.29.140.*
这个不错
【 在 CrTn 的大作中提到: 】
: a.loc[b.index] = b.values
:
: 【 在 formydream 的大作中提到: 】
: ....................
--
FROM 117.150.199.*
a = {1:"a", 2:"b", 3:"c"}
b = {2:"e", 3:"f"}
a.update(b)
print(a)
> {1: 'a', 2: 'e', 3: 'f'}
【 在 formydream 的大作中提到: 】
: 比如series1为 values= [1,2,3,4,5],index=[a,b,c,d,e]
: series2为 values=[88,99,100],index=[c,d,e]
: 我的需求是要用series2的c,d,e的值去替代series1的c,d,e的对应值,其他的值保持不变。
: ...................
--
FROM 213.95.148.*