2017-11-28 13 views
1

팬더에 대해 묻기 때문에 중복되지 않습니다 round().팬더 열은 정밀하지만 후행 없음 0

나는 숫자가있는 일부 열이있는 dataframe입니다. 나는 성공적 대신 제대로 작성 15.36785699998의 긴 소수립니다

df = df.round(decimals=6) 

실행 15.367857를,하지만 난 여전히 제로 후행 1.0 또는 16754.0를 얻을.

팬더를 실행하면 모든 열에서 후행 0을 제거하는 방법 df.round()?

데이터 프레임을 CSV로 저장하고 원하는 방식으로 데이터를 표시해야합니다.

답변

1
df = df.round(decimals=6).astype(object) 

object으로 변환하면 혼합 표현이 허용됩니다. 그러나 이것은 성능 측면에서별로 유용하지 않다는 것을 명심하십시오.


df 

      A   B 
0 0.149724 -0.770352 
1 0.606370 -1.194557 
2 10.000000 10.000000 
3 10.000000 10.000000 
4 0.843729 -1.571638 
5 -0.427478 -2.028506 
6 -0.583209 1.114279 
7 -0.437896 0.929367 
8 -1.025460 1.156107 
9 0.535074 1.085753 

df.round(6).astype(object) 

      A   B 
0 0.149724 -0.770352 
1 0.60637 -1.19456 
2  10  10 
3  10  10 
4 0.843729 -1.57164 
5 -0.427478 -2.02851 
6 -0.583209 1.11428 
7 -0.437896 0.929367 
8 -1.02546 1.15611 
9 0.535074 1.08575 
+0

와우! 'fs ['mycol ']. as_type (str) .str.replace ('. 0, ',', ')'에 대해 많은 이야기를하고, 필자는 texfile.readlines를 대체했다. 그 밖의 모든 것은 끝났다. 이것은 대단하다 !! – pashute

+0

_why_ Pandas가 dtype 객체 시리즈에서 정수 float을 이런 방식으로 렌더링하는 것에 대한 설명을 제공 할 수 있습니까? 이 행동이 문서화되어 있습니까? 의지하지 않는다면 위험한 것으로 보입니다 (그리고 표현의 문제를 해결하기 위해 '객체'로 변환하는 것은 좋지 않은 것처럼 보입니다). –

+0

@ MarkDickinson "이유"비트에 대해서는 거의 알지 못합니다. 그리고 예, 일반적으로 성능에 대한 의무적 인 면책 조항을 추가하지만이 질문에 대해서는 '데이터 프레임을 CSV로 저장하고 원하는 방식으로 데이터를 표시해야하기 때문에 괜찮습니다'라고 표시되어 있으므로 _ 표현적인 문제를 해결하고 더 많은 것을 해결할 수 있습니다. –