1

I have a list of floats that I would like to add to a dataframe as a new column. Each float has aproximately 9 o 10 decimals and I need all of them. The problem is that when I add the list to the dataframe as a new column I lose the decimals (only four of them remain). The methods I used for adding the list were first pd.concat and then just creating a new variable in the dataframe that is exactly the same as the list, but none of them worked.

my_list
[0.0,
 0.0,
 0.039403929840504,
 0.000020304030304,
 0.0,
 0.00010000000000331966,
 0.0,
 0.0,
 9.99999999891088e-05,
 0.00010000000000331966,
 0.0]

Thats the list and I would like to add it to a dataframe as a new column without losing any decimal points. By the way, the dataframe has the same number of rows that elements in the list.

TomasC8
  • 161
  • 1
  • 7
  • 1
    Does this answer your question? [Pandas data precision](https://stackoverflow.com/questions/43217916/pandas-data-precision) – Thomas Weller Feb 10 '21 at 20:59

1 Answers1

1

You don't lose precision, it's just not printed out

In [18]: my_list
Out[18]:
[0.0,
 0.0,
 0.039403929840504,
 2.0304030304e-05,
 0.0,
 0.00010000000000331966,
 0.0,
 0.0,
 9.99999999891088e-05,
 0.00010000000000331966,
 0.0]

In [19]: df = pd.DataFrame(my_list)

In [20]: df
Out[20]:
           0
0   0.000000
1   0.000000
2   0.039404
3   0.000020
4   0.000000
5   0.000100
6   0.000000
7   0.000000
8   0.000100
9   0.000100
10  0.000000

In [21]: df.loc[3][0]
Out[21]: 2.0304030304e-05
politinsa
  • 3,480
  • 1
  • 11
  • 36