2017-05-19 59 views
0

我无法找到PythonNET与Lists一起使用的任何答案,这是一个Python包,允许您导入.NET DLL。出于某种原因创建DateTime列表不适用于我。 解决下面是如何使其工作:PythonNET DateTime C#.NET列表如何填充它?

import clr 
from pandas import to_datetime, Series 
from System.Collections.Generic import List 
from System import DateTime 

Contracts = to_datetime(Series(['9/1/2014','10/1/2014','11/1/2014','12/1/2014','1/1/2015','2/1/2015','3/1/2015','4/1/2015','5/1/2015','6/1/2015','7/1/2015','8/1/2015'])) 
DateList = List[DateTime](range(len(Contracts))) 
for i in range(len(Contracts)): DateList.Add(DateTime(Contracts[i].year,Contracts[i].month,Contracts[i].day)) 

(对不起上面的格式,我不能让缩进在循环工作)。要显示列表的内容,你可以这样做:

print(DateList.get_Item(0)) 
9/1/2014 12:00:00 AM 

print(DateList.get_Item(11)) 
8/1/2015 12:00:00 AM 
+0

“它只是错误”并没有告诉我们很多。什么是错误?你能创建一个*单* DateTime吗?请在您的帖子中格式化代码。 –

+0

对不起,我不会让我填充一个DateTime对象通过NET对象netcontainer [0]的正常访问方法,例如 – Matt

+0

我不知道'netcontainer'在这里,但似乎不太可能,你可以如果您无法创建*个人*一个,则创建一个* Date *值。 (你还没有提供任何比“它只是错误”更详细的信息) –

回答

1

解决这里是如何使其工作:

import clr 
from pandas import to_datetime, Series 
from System.Collections.Generic import List from System import DateTime 

Contracts = to_datetime(Series(['9/1/2014','10/1/2014','11/1/2014','12/1/2014','1/1/2015','2/1/2015','3/1/2015','4/1/2015','5/1/2015','6/1/2015','7/1/2015','8/1/2015']))  DateList = List[DateTime](range(len(Contracts))) 
for i in range(len(Contracts)): DateList.Add(DateTime(Contracts[i].year,Contracts[i].month,Contracts[i].day)) 

(对不起上面的格式,我不能得到的缩进在循环中工作)。要显示列表的内容,你可以这样做:

print(DateList.get_Item(0)) 
9/1/2014 12:00:00 AM 
print(DateList.get_Item(11)) 
8/1/2015 12:00:00 AM