У меня проблема с приведенной ниже функцией mergeit2.
Функция объединяет два файла вместе.
Файл текущего года и файл c истории. В файле historyi c даты представлены в формате chr (10), а в текущем файле даты представлены в формате даты. Затем, когда я загружаю данные в Tableau, я хочу перевести все даты в формат chr (10), распознав столбец как столбец str. Тем не менее, это почему-то не работает. Должен ли я заменить свое распознавание str другой командой?
Мой код, как показано ниже:
import pandas as pd
import os
import glob
import time
import numpy as np
def mergeit2(path1, path2):
for fl in path1:
df = pd.read_csv(fl, header = None, skiprows = 0)
df = df.replace(to_replace = 'Date', value = np.nan).dropna()
dflist.append(df)
concat2 = pd.concat(dflist, axis = 0)
concat2.to_csv(path2,header = cols, index = False)
df = pd.read_csv(path2)
df['Date'] = df['Date'].astype(str)
df.to_csv(path2, index = False)
cols = ['Year','Month','Week','Week in Number','Date','GPU Util%','CPU Util%']
dflist = []
path1 = glob.iglob('C:\*Users\<username>..<rest of path>..\*Data_*.csv')
path2 = "C:\\Users\\<username>..<rest of path>..\\Data_master.csv"
mergeit2(path1,path2)
Пример набора данных:
Перед выполнением кода:
Current file Example Data
Int int Str int datetime64 float float
Year Month Week Week in Number Date GPU Util% CPU Util%
2020 1 First 1 01/01/2020 0.680 0.450
2020 1 First 1 02/01/2020 0.320 0.056
2020 1 First 1 03/01/2020 0.560 0.470
2020 1 First 1 04/01/2020 0.520 0.325
Historic File Example Data
int int Str int chr(10) float float
Year Month Week Week in Number Date GPU Util% CPU Util%
2019 1 First 1 05/01/2020 0.467 0.284
2019 1 Second 2 06/01/2020 0.516 0.360
2019 1 Second 2 07/01/2020 0.501 0.323
2019 1 Second 2 08/01/2020 0.494 0.322
После выполнения кода ( объединенный главный файл CSV - некоторые даты в chr (10) и другие в формате datetime)
Year Month Week Week in Number Date GPU Util% CPU Util%
2020 1 First 1 2020-01-01 0.680 0.450
2020 1 First 1 2020-01-02 0.320 0.056
2020 1 First 1 2020-01-03 0.560 0.470
2020 1 First 1 2020-01-04 0.520 0.325
int int Str int chr(10) float float
2019 1 First 1 05/01/2020 0.467 0.284
2019 1 Second 2 06/01/2020 0.516 0.360
2019 1 Second 2 07/01/2020 0.501 0.323
2019 1 Second 2 08/01/2020 0.494 0.322
Мой ожидаемый результат следующий:
Int int Str int chr(10) float float
Year Month Week Week in Number Date GPU Util% CPU Util
2020 1 First 1 01/01/2020 0.680 0.450
2020 1 First 1 02/01/2020 0.320 0.056
2020 1 First 1 03/01/2020 0.560 0.470
2020 1 First 1 04/01/2020 0.520 0.325
2019 1 First 1 05/01/2020 0.467 0.284
2019 1 Second 2 06/01/2020 0.516 0.360
2019 1 Second 2 07/01/2020 0.501 0.323
2019 1 Second 2 08/01/2020 0.494 0.322