提示用户在 google colab 中加载 csv

prompting the user to load a csv in google colab

我是 python 的新手,但不知何故设法将代码编译为 运行 CSV 文件上的 ADF 和 Mann-Kendall 测试。我真正想要的是提示用户加载一个 csv 文件。考虑文件有两列;首先是日期,其次是值。加载 csv 后,必须对第二列应用 ADF 和 M-K 测试并显示相应的结果。

import pandas as pd
Table = pd.read_csv('DRIVE LINK')
Table.shape

#Total null cells in each column
Table.isnull().sum()

#define function for ADF test
from statsmodels.tsa.stattools import adfuller
def adf_test(timeseries):
    #Perform Dickey-Fuller test:
    print ('Results of Dickey-Fuller Test:')
    dftest = adfuller(timeseries, autolag='AIC')
    dfoutput = pd.Series(dftest[0:4], index=['Test Statistic','p-value','#Lags Used','Number of Observations Used'])
    for key,value in dftest[4].items():
       dfoutput['Critical Value (%s)'%key] = value
    print (dfoutput)

#apply adf test on the series
adf_test(Table.iloc[:,1])

pip install pymannkendall

#perform Mann-Kendall Trend Test
import pymannkendall as mk
mk.original_test(Table.iloc[:,1])

我在 google 中搜索时得到了这段代码。但是我无法用我的代码 link 它。

from google.colab import files
uploaded = files.upload()

无论文件名是什么,一旦用户上传了一个csv,这两个测试都应该进行。有没有办法做到这一点 ? 提前致谢。

您必须从 files.upload 调用的 return 值中提取文件名。这是一些应该为您执行此操作的代码。请注意,您可以使用 file.upload 上传多个文件,因此在这种情况下可能无法正常工作。

import io
import pandas as pd
from google.colab import files
print("Choose a single file")
uploaded = files.upload()
filename=[key for key in uploaded.keys()][0]
Table = pd.read_csv(io.BytesIO(uploaded[filename]))