我有一个数据框:
df = pd.DataFrame(data=[676, 0, 670, 0, 668], index=['2012-01-31 00:00:00','2012-02-29 00:00:00',
'2012-03-31 00:00:00','2012-04-30 00:00:00',
'2012-05-31 00:00:00'])
df.index.name = "Date"
df.columns = ["Number"]
Run Code Online (Sandbox Code Playgroud)
看起来像:
Number
Date
2012-01-31 00:00:00 676
2012-02-29 00:00:00 0
2012-03-31 00:00:00 670
2012-04-30 00:00:00 0
2012-05-31 00:00:00 668
Run Code Online (Sandbox Code Playgroud)
如何分别输入 (676+670)/2 和 (670+668)/2 的第二个和第四个值?
我可以将值另存为np.array并将它们输入数组,但这太荒谬了!
我有以下 DF:
df=pd.DataFrame({
'x':[1, 2, 3, -1, -2, -3],
'y':[-1, 3, 2, -4, 3, -2],
'z':[1 , 1, 5, 2, 1, -1]
Run Code Online (Sandbox Code Playgroud)
}) 或者
x y z
0 1 -1 1
1 2 3 1
2 3 2 5
3 -1 -4 2
4 -2 3 1
5 -3 -2 -1
Run Code Online (Sandbox Code Playgroud)
目标是找到所有元素都具有相同(负或正)值的行。在本例中,这意味着选择第 1、2 和 5 行。
我将不胜感激任何帮助。我知道这个问题:Pandas - 比较正/负值, 但它没有解决值为负的情况。
谢谢 :)
我有以下数据框:
df1=pd.DataFrame({'fr':[1,2,3],'to':[4,5,6],'R':[0.1,0.2,0.3]})
df2=pd.DataFrame({'fr':[1,5,3],'to':[4,2,6],'X':[0.4,0.5,0.6]})
Run Code Online (Sandbox Code Playgroud)
我想在 fr 和 to 上合并这两个数据帧,忽略 fr 和 to 的顺序,即(2,5)与(5,2)相同。所需的输出是:
dfO=pd.DataFrame({'fr':[1,2,3],'to':[4,5,6],'R':[0.1,0.2,0.3],'X':[0.4,0.5,0.6]})
Run Code Online (Sandbox Code Playgroud)
或者
dfO=pd.DataFrame({'fr':[1,5,3],'to':[4,2,6],'R':[0.1,0.2,0.3],'X':[0.4,0.5,0.6]})
Run Code Online (Sandbox Code Playgroud)
我可以执行以下操作:
pd.merge(df1,df2,on=['fr','to'],how='left')
Run Code Online (Sandbox Code Playgroud)
然而,正如预期的那样,第二行的 X 值是 NaN。
感谢您的帮助。