Skip to content Skip to sidebar Skip to footer

Extracting Data Belonging To A Day From A Given Range Of Dates On A Dataset

I have a data set with a date range from January 12th to August 3rd of 2018 with some values: The dimensionality of my_df DataFrame is: my_df.shape (9752, 2) Each row contains h

Solution 1:

Something like this? I renamed your original column of Date: to Timestamp. I am also assuming that the Date: Series you have is a pandas DateTime series.

my_df.columns = ['Timestamp', 'Value']
my_df['Date'] = my_df['Timestamp'].apply(lambda x: x.date())
dates = my_df['Date'].unique()
fordatein dates:
    f_name = str(date) + '.csv'
    my_df[my_df['Date'] == date].to_csv(f_name)

Solution 2:

groupby

for date, d in df.groupby(pd.Grouper(key='Date', freq='D')):
  d.to_csv(f"Data_{date:%b_%d}.csv", index=False)

Notice I used an f-string which is Python 3.6+ Otherwise, use this

fordate, d in df.groupby(pd.Grouper(key='Date', freq='D')):
  d.to_csv("Data_{:%b_%d}.csv".format(date), index=False)

Consider the df

df = pd.DataFrame(dict(
    Date=pd.date_range('2010-01-01', periods=10, freq='12H'),
    Value=range(10)
))

Then

for date, d in df.groupby(pd.Grouper(key='Date', freq='D')):
  d.to_csv(f"Data_{date:%b_%d}.csv", index=False)

And verify

from pathlib importPathprint(*map(Path.read_text, Path('.').glob('Data*.csv')), sep='\n')

Date,Value2010-01-0500:00:00,82010-01-0512:00:00,9Date,Value2010-01-0400:00:00,62010-01-0412:00:00,7Date,Value2010-01-0200:00:00,22010-01-0212:00:00,3Date,Value2010-01-0100:00:00,02010-01-0112:00:00,1Date,Value2010-01-0300:00:00,42010-01-0312:00:00,5

Post a Comment for "Extracting Data Belonging To A Day From A Given Range Of Dates On A Dataset"