【问题标题】:Write a pandas DataFrame mixing integers and floats in a csv file在 csv 文件中编写一个混合整数和浮点数的 pandas DataFrame
【发布时间】:2018-02-22 23:49:06
【问题描述】:

我正在使用充满浮点数的 pandas DataFrames,但每三行有一个整数(整行由整数组成)。当我创建一个print df 时,所有显示的值都显示为浮点数(整数值添加了一个``.000000``),例如:

                aromatics      charged        polar      unpolar
Ac_obs_counts  712.000000  1486.000000  2688.000000  2792.000000
Ac_obs_freqs     0.092732     0.193540     0.350091     0.363636
Ac_pvalues       0.524752     0.099010     0.356436     0.495050
Am_obs_counts   10.000000    59.000000    62.000000    50.000000
Am_obs_freqs     0.055249     0.325967     0.342541     0.276243
Am_pvalues       0.495050     0.980198     0.356436     0.009901
Ap_obs_counts   18.000000    34.000000    83.000000    78.000000
Ap_obs_freqs     0.084507     0.159624     0.389671     0.366197
Ap_pvalues       0.524752     0.039604     0.980198     0.663366

当我使用df.iloc[range(0, len(df.index), 3)] 时,我看到显示的是整数:

               aromatics  charged  polar  unpolar
Ac_obs_counts        712     1486   2688     2792
Am_obs_counts         10       59     62       50
Ap_obs_counts         18       34     83       78
Pa_obs_counts         47       81    125      144
Pf_obs_counts         31       58     99      109
Pg_obs_counts         27      106    102      108
Ph_obs_counts          7       49     42       36
Pp_obs_counts         15       83     45       65
Ps_obs_counts         57      125    170      216
Pu_obs_counts         14       62    102       84

当我使用 df.to_csv("mydf.csv", sep=",", encoding="utf-8") 时,整数被写为浮点数;如何强制将这些行写入为整数?将数据拆分为两个 DataFrame 会更好吗?

提前致谢。

【问题讨论】:

  • 您对将整数值作为浮点数写入 csv 文件有任何顾虑吗?如果你的整数被写成浮点数,这通常并不重要。一种方法是将所有内容转换为字符串,然后另存为 csv。
  • 是的,这实际上不是什么大问题,但是这些数字代表计数,为了方便起见,通常是整数^^

标签: python pandas casting


【解决方案1】:

只需拨打object

df.astype('object')
Out[1517]: 
              aromatics   charged     polar   unpolar
Ac_obs_counts       712      1486      2688      2792
Ac_obs_freqs   0.092732   0.19354  0.350091  0.363636
Ac_pvalues     0.524752   0.09901  0.356436   0.49505
Am_obs_counts        10        59        62        50
Am_obs_freqs   0.055249  0.325967  0.342541  0.276243
Am_pvalues      0.49505  0.980198  0.356436  0.009901
Ap_obs_counts        18        34        83        78
Ap_obs_freqs   0.084507  0.159624  0.389671  0.366197
Ap_pvalues     0.524752  0.039604  0.980198  0.663366

【讨论】:

  • 谢谢,这有效,但仅用于在屏幕上显示框架(这是一个好的开始^^),但当我使用 df.to_csv 时它不会:/
  • @Micawber 是csv显示问题,你可以尝试打开你的csv as txt,右键open as txt
  • 它不会改变任何东西,但我想这毕竟不是什么大不了的^^。无论如何谢谢:)
  • @Micawber IDK,是否有帮助,如果有帮助,您可以考虑投票并接受吗?
猜你喜欢
  • 1970-01-01
  • 2020-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-31
相关资源
最近更新 更多