Skip to content Skip to sidebar Skip to footer

Plotting A Multiple Column In Pandas (converting Strings To Floats)

I'd like to plot 'MJD' vs 'MULTIPLE_MJD' for the data given here:: https://www.dropbox.com/s/cicgc1eiwrz93tg/DR14Q_pruned_several3cols.csv?dl=0 import numpy as np import pandas as

Solution 1:

There are two issues here:

  1. Telling Pandas to parse tuples within the CSV. This is covered here: Reading back tuples from a csv file with pandas
  2. Transforming the tuples into multiple rows. This is covered here: Getting a tuple in a Dafaframe into multiple rows

Putting those together, here is one way to solve your problem:

# Following https://stackoverflow.com/questions/23661583/reading-back-tuples-from-a-csv-file-with-pandas
import pandas as pd
import ast
df = pd.read_csv("DR14Q_pruned_several3cols.csv",
                 converters={"MJD_DUPLICATE": ast.literal_eval})

# Following https://stackoverflow.com/questions/39790830/getting-a-tuple-in-a-dafaframe-into-multiple-rows
df2 = pd.DataFrame(df.MJD_DUPLICATE.tolist(), index=df.MJD)
df3 = df2.stack().reset_index(level=1, drop=True)

# Now just plot!
df3.plot(marker='.', linestyle='none')

enter image description here

If you want to remove the 0 and -1 values, a mask will work:

df3[df3 > 0].plot(marker='.', linestyle='none')

enter image description here

Post a Comment for "Plotting A Multiple Column In Pandas (converting Strings To Floats)"