当比较两个数据文件并将结果放回数据文件时:
dfA = pd.DataFrame({'Column':[1,2,3,4]})或以人类可读的形式:
Column
0 1
1 2
2 3
3 4
dfB = pd.DataFrame({'Column':[1,2,4,3]})或以人类可读的形式:
Column
0 1
1 2
2 4
3 3
pd.DataFrame(dfA > dfB)熊猫输出数据的真值或假值。
Column
0 False
1 False
2 False
3 True是否可以将名称从“真”或“假”改为“低”或“更高”?我想知道结果是高的、低的还是相等的,这就是我为什么要问。如果输出不高或低(真或假),则必须相等。
发布于 2018-04-19 13:43:07
为了性能/简单性,我建议使用np.where。
pd.DataFrame(np.where(dfA > dfB, 'higher', 'lower'), columns=['col'])
col
0 lower
1 lower
2 lower
3 higher如果需要,还可以使用np.where嵌套条件,
m1 = dfA > dfB
m2 = dfA < dfB
pd.DataFrame(
np.where(m1, 'higher', np.where(m2, 'lower', 'equal')),
columns=['col']
)或者,使用np.select遵循一种稍微不同的方法。
pd.DataFrame(
np.select([m1, m2], ['higher', 'lower'], default='equal'),
columns=['col']
)
col
0 equal
1 equal
2 lower
3 higher发布于 2018-04-19 13:40:07
您可以使用map
In [10]: pd.DataFrame(dfA > dfB)['Column'].map({True: 'higher', False: 'lower'})
Out[10]:
0 lower
1 lower
2 lower
3 higher
Name: Column, dtype: objecthttps://stackoverflow.com/questions/49922506
复制相似问题