我有几百行,列项、编号和值。在value列中,我想计算两行之间的值差,这可以简单地用
df['value']=df['value'].diff(-1)
但是在value列中有所有的数字,但是在很少的地方有一个字符串值"NO",所以这里我想检查当前行值与先前值的差异--行中的值--或者行中的两个值都是"NO",那么它应该跳过它的检查并向前移动。因为,(如)当有差别时,一个值是“不”,而不是它应该忽略它或把南放在它前面。输出情况如下:
value output
5 NAN
4 1
6 -2
NO
在以下情况下,如何克服除以零:
A =
[[3.0 5.0 nan nan nan]
[nan 5.0 nan 4.0 5.0]
[nan nan nan nan nan]
[nan nan 1.0 nan 5.0]
[5.0 nan nan 3.0 nan]
[1.0 2.0 nan nan 5.0]
[2.0 nan nan nan nan]
[nan nan nan 2.0 1.0]
[nan 1.0 5.0 nan nan]
[nan nan 5.0 1.0 nan]]
Mean = np.nanmean(A, axis=1)
这会产生零的除法,因为A[2,:]的所有条目都是nan
我在一个pandas数据框中有两个布尔列A和B,每个列都有缺失的数据(用NaN表示)。我希望对这两列执行AND操作,但是如果两个原始列中的任何一个为NaN,则我希望得到的布尔列为NaN。我有下表:
A B
0 True True
1 True False
2 False True
3 True NaN
4 NaN NaN
5 NaN False
现在,当我执行df.A & df.B时,我希望:
0 True
1 False
2 False
3 NaN
4 NaN
我尝试了几种方法来清除DataFrame中某个特定系列中包含DataFrame的行,结果发现每个NaN条目都是一个'NaN'字符串,而不是空值。
在我的具体示例中,每行代表一个国家,因此我希望从'GDP per Capita'列中删除所有在DataFrame列中没有GDP值的国家。
有些事情我尝试过(失败了):
df_noGDP = df
df_noGDP.dropna(axis=0, subset=['GDP per Capita'])
和
df_noGDP = df.loc[df['GDP per Capita'] != n
我有下面的df
A B
3 days NaT
NaT 1 days
4 days 3 days
NaT NaT
dtype of A B is timedelta64[ns],我正在尝试从两列的每个timedelta中获取days,所以首先我尝试删除所有A和B碰巧都是NaT的行,
daydelta = df.dropna(subset=['A', 'B'], how='all')
然后获取每个列值的days,
daydelta[['A', 'B']] = dayd
我有以下数据帧:
a b c d e
0 NaN 2.0 NaN 4.0 5.0
1 NaN 2.0 3.0 NaN 5.0
2 1.0 NaN 3.0 4.0 NaN
3 1.0 2.0 NaN 4.0 NaN
4 NaN 2.0 NaN 4.0 5.0
我尝试的是生成一个不带NaN值的新数据帧。在一行中总是有相同数量的NaN值。
最终的数据帧应如下所示:
x y z
0 2 4 5
1 2 3 5
2 1 3 4
3 1 2 4
4 2 4 5
有没有人知道一种简单的
我需要将以下数据帧中的所有单独列移到极致。在shift函数中是否有任何开关可以做到这一点?
df = pd.DataFrame([[11,22,33,44,55], [nan,44,55], [nan,33,44,55], [11,22]]).T
输入
11 NaN NaN 11
22 44 33 22
33 55 44 NaN
44 NaN 55 NaN
55 NaN NaN NaN
输出
11 NaN NaN NaN
22 NaN NaN NaN
33 NaN 33 NaN
44 44 44 11
55 55 55 22
编辑:在我看来,所有的列都是
我有以下数据库:
df = pandas.DataFrame({'Buy':[10,np.nan,2,np.nan,np.nan,4],'Sell':[np.nan,7,np.nan,9,np.nan,np.nan]})
Out[37]:
Buy Sell
0 10.0 NaN
1 NaN 7.0
2 2.0 NaN
3 NaN 9.0
4 NaN NaN
5 4.0 NaN
我希望再创建两个名为Quant和B/S的列
对于Quant,它工作得很好,如下所示:
df‘’Quant‘=df’‘Buy’.