我试图在数据帧s.t中转换所有0和NA。我可以做进一步的计算。这是一个例子。
1| 20150105| 15.78
1| 20150106| 15.78
1| 20150107| 15.48
1| 20150108| 14.96
1| 20150109| 15.08
2| 20150105| 14.91
2| 20150106| 14.18
2| 20150107| 14.18
2| 20150108| 14.18
2| 20150109| 13.45
3| 20150105| 15.69
3| 20150106| 16.46
3| 20150107| 16.41
3| 20150108| 16.41
3| 20150109| 16.41
例如符号1中的0,我希望0是最接近的值,不是0或NaN,即15.78。 对于符号2中的0 / Na,我希望使用14.91和13.45将0 / NaN插入到插值结果中。 转换后,它应该是这样的。
df=pd.read_csv('~/Desktop/stackoverflow.csv')
df1=df.replace(0,np.nan)
for i in range(1,len(df1)):
df2=df1[df1.symbol==i]
df3=pd.DataFrame(df2.interpolate())
print(df3)
我尝试了类似
的内容 1| 20150105| NaN
1| 20150106| 15.78
1| 20150107| 15.48
1| 20150108| 14.96
1| 20150109| 15.08
2| 20150105| 14.91
2| 20150106| 14.18
2| 20150107| 14.18
2| 20150108| 14.18
2| 20150109| 13.45
3| 20150105| 15.69
3| 20150106| 16.46
3| 20150107| 16.41
3| 20150108| 16.41
3| 20150109| 16.41
给你
df=pd.read_csv('~/Desktop/stackoverflow.csv')
df1=df.replace(0,np.nan)
for i in range(1,len(df1)):
df2=df1[df1.symbol==i]
df3=pd.DataFrame(df2.interpolate())
df4=df3.fillna()
print(df4)
但是,NaN的第一行不能简单地插入,因为前面没有值。 在实际情况中,每个符号的头部有许多连续的行。我刚学了一个星期的python,这真是我无法实现的。
原来我可以用......叫fillna()
Shader "GUI/3D Text Shader - Cull Back" { Properties { _MainTex ("Font Texture", 2D) = "white" {} _Color ("Text Color", Color) = (1,1,1,1) } SubShader { Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } Lighting Off Cull Back ZWrite Off Fog { Mode Off } Blend SrcAlpha OneMinusSrcAlpha Pass { Color [_Color] SetTexture [_MainTex] { combine primary, texture * primary } } }
非常感谢鼓舞人心的评论。如果你有一个更简单或更简洁的方法,PLZ添加你的答案。(我的方法实际上返回一个质量,尽管我想要的结果混合在其中)