E aí Gustavo! Tudo bem com você?
O erro está sendo gerado devido a função do numpy que você está usando np.loadtxt()
. Isso porque, essa função espera receber um arquivo .txt, entretanto você estava passando um conjunto de bytes para ela.
Sendo assim, para transformar cada arquivo .csv em um dataframe do pandas, você pode tentar o seguinte:
import tarfile
import pandas as pd
from datetime import datetime
tar = tarfile.open('Bases/analytics.csv.tar.gz', 'r:gz', encoding='utf-8')
for member in tar.getmembers():
f = tar.extractfile(member)
if f:
df = pd.read_csv(f)
print(df)
print('--------')
Nesse caso, você deve visualizar seus dataframes conforme nesse exemplo:
Entretanto, nesse caso, a cada iteração do laço for
um dataframe irá sobreescrever o outro na variável df
. Então, é importante armazenar esses dataframes a cada iteração. Para isso, podemos criar uma lista e ir adicionando esses dataframes:
import tarfile
import pandas as pd
from datetime import datetime
dataframes = []
tar = tarfile.open('Bases/analytics.csv.tar.gz', 'r:gz', encoding='utf-8')
for member in tar.getmembers():
f = tar.extractfile(member)
if f:
df = pd.read_csv(f)
dataframes.append(df)
print(df)
print('--------')
Dessa forma, você poderá acessar cada um dos seus 3 dataframes por meio do índice. Por exemplo, caso queira acessar apenas o primeiro dataframe você pode utilizar o comando: dataframes[0] e assim por diante.
Qualquer dúvida me fala aqui, que nós vamos conversando, tá bom?
Bons estudos!