2017-05-19 63 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