绕过熊猫的单个列
有没有办法在熊猫中舍入单个列而不会影响数据帧的其余部分?绕过熊猫的单个列
df:
item value1 value2
0 a 1.12 1.3
1 a 1.50 2.5
2 a 0.10 0.0
3 b 3.30 -1.0
4 b 4.80 -1.0
df.value1.apply(np.round) 给
0 1
1 2
2 0
3 3
4 5
5 5
什么是正确的方法,使数据看起来像这样:
item value1 value2
0 a 1 1.3
1 a 2 2.5
2 a 0 0.0
3 b 3 -1.0
4 b 5 -1.0
5 c 5 5.0
你非常接近。 您应用了该轮的df.value1
给出的一系列值。 返回类型因此是一个系列。 您需要在一系列分配回数据帧(或具有相同指数的另一个数据帧)
也有一个Series.round
方法,基本上是Series.apply(np.round)
In[2]:
df.value1 = df.value1.round()
print df
Out[2]:
item value1 value2
0 a 1 1.3
1 a 2 2.5
2 a 0 0.0
3 b 3 -1.0
4 b 5 -1.0
手短出于某种原因,轮()方法不起作用,如果你有浮点数有许多小数位,但会这样。
desred_decimals = 2
df['column'] = df['column'].apply(lambda x: round(x,desred_decimals))
df.column_name.round()似乎适用于输出格式。 lambda的应用实际上改变了底层存储值。 – 2018-02-22 04:50:39
@StephanDoliov准确地说,精确问题困扰了我很长一段时间。 'round()'只能设置显示精度而非存储值。 – seizetheday 2018-03-02 02:45:16
谢谢。没有感觉非常明亮,因此错过了这个:) – k3it 2014-10-01 04:15:02
熊猫不会(对我来说至少)自然来临。我确信我在上周左右阅读了另一个SO回答之后,如何做到这一点。但我再也找不到它标记为重复,因此它可能是一个稍有不同的问题。 – 2014-10-01 14:57:00