【发布时间】:2018-03-03 10:34:41
【问题描述】:
我在我的代码中发现了一个错误,这是由于我的数据框的日期列不包括小时和分钟,而只包括日期。由于连续运行这两个函数而不是逐个运行它们,我追踪了问题的原因。如果我一个一个地运行函数,没有问题。如果我同时运行它们,我的结果是出乎意料的。
我需要连续运行这些函数,但它们并不相互依赖。我是 Python 新手,所以我认为这可能是由于输入被覆盖或其他原因(据我所知,在 Java 中不会发生这种情况)。所以,我把函数改成如下:
def func1(dataset):
originalData = dataset
# only look at one day at a time- remove extra unnecessary info
originalData ['Date'] = pd.to_datetime(originalData ['Date'])
print dataset, 'test1'
originalData ['Date'] = originalData ['Date'].dt.date
print dataset, 'test2'
# other stuff
def func2(dataset):
originalData2 = dataset
# look at entire datetime
originalData2['Date'] = pd.to_datetime(originalData2['Date'])
print originalData2
# other stuff
这样跑,我在第二个函数里浪费了时间。
csv = pd.read_csv(csvFileName)
func1(csv)
func2(csv)
像这样运行,func2 得到我想要的输出:
csv = pd.read_csv(csvFileName)
func2(csv)
奇怪的是,如果运行 func1,test1 用 datetime 打印出日期,而 test2 只打印出日期。即使更改应用于 originalDataset,数据集也正在更改。我是不是误会了什么?提前致谢。
【问题讨论】:
标签: python python-2.7 pandas datetime