我正在将数据框中的列舍入到最近的5个浮点.之后我将列值转换为字符串,但是当我这样做时,浮动返回就好像它们没有接地一样.我正在使用Python 2.7
import pandas as pd
df=pd.read_excel(C:"path")
def custom_round(x, base=5):
return base * round(float(x)/base)
df['A'] = df['kl'].apply(lambda x: custom_round(x, base=.05))
df['b'] = "D = " + df['A'].astype(str)
kl A b
0.600001 0.60 D = 0.6000000000000001
0.600001 0.60 D = 0.6000000000000001
0.600000 0.60 D = 0.6000000000000001
0.600000 0.60 D = 0.6000000000000001
0.600587 0.60 D = 0.6000000000000001
0.601573 0.60 D = 0.6000000000000001
0.601168 0.60 D = 0.6000000000000001
0.600001 0.60 D = 0.6000000000000001
0.600001 0.60 D = 0.6000000000000001
0.600001 0.60 D = 0.6000000000000001 …Run Code Online (Sandbox Code Playgroud) 我有一个这样的数据框,我正在尝试使用 Pandas 中的 Pivot 重塑我的数据框,这样我可以保留原始行中的一些值,同时将重复行变成列并重命名它们。有时我有 5 个重复的行
我一直在努力,但我不明白。
import pandas as pd
df = pd.read_csv("C:dummy")
df = df.pivot(index=["ID"], columns=["Zone","PTC"], values=["Zone","PTC"])
# Rename columns and reset the index.
df.columns = [["PTC{}","Zone{}"],.format(c) for c in df.columns]
df.reset_index(inplace=True)
# Drop duplicates
df.drop(["PTC","Zone"], axis=1, inplace=True)
Run Code Online (Sandbox Code Playgroud)
输入
ID Agent OV Zone Value PTC
1 10 26 M1 10 100
2 26.5 8 M2 50 95
2 26.5 8 M1 6 5
3 4.5 6 M3 4 40
3 4.5 6 M4 6 60
4 1.2 …Run Code Online (Sandbox Code Playgroud)