我有一个带有数字系列的数据框,如下所示。我怎样才能说出每一个价值,让我们说一下0.2?在Excel中很容易,通过=CEILING(x, 0.2)
但是Python呢?
df = pd.DataFrame({'A': [1, 1.3, 1.5, 1,6, 1.7, 2]})
答案 0 :(得分:3)
据我所知,这样的功能本身并不存在。
您可以使用NumPy(归功于@DSM):
step = 0.2
df['B'] = np.ceil((df['A'].values / step)) * step
pd.Series.apply
的性能较低的版本:
import pandas as pd
import math
df = pd.DataFrame({'A': [1, 1.3, 1.5, 1,6, 1.7, 2]})
def ceil(x, step=1):
return step * math.ceil(x/step)
df['B'] = df['A'].apply(ceil, step=0.2)
# A B
# 0 1.0 1.0
# 1 1.3 1.4
# 2 1.5 1.6
# 3 1.0 1.0
# 4 6.0 6.0
# 5 1.7 1.8
# 6 2.0 2.0