나는 numpy 및 pandas에 상당히 새로운 것이라고 말함으로써 시작하겠습니다. 나는 판다 데이터 프레임을 만들려고 노력하고 있지만 적절한 방법으로 일을하고 있는지 확신 할 수 없습니다.개체 목록에서 팬더 데이터 프레임 구성
필자가 설정 한 .Net 개체의 목록이 매우 커서 (그리고 제어 할 수있는 권한이 거의 없음) 팬더 데이터 프레임을 사용하여 시계열을 만들고 싶습니다. 데모 용으로 단순한 자리 표시 자 클래스로 .NET 클래스를 대체 한 예제가 있습니다. 이 코드의 listOfthings
은 기본적으로 .Net에서 얻은 것으로 판다 데이터 프레임으로 변환하려고합니다.
내 질문은 :
- 내가 먼저 NumPy와 배열을 구성하여 dataframe을 구성. 필요한가? 또한,이 배열은 내가 예상 한대로 1000x2 크기가 아닙니다. 여기에 numpy를 사용하는 더 좋은 방법이 있습니까?
- datetime64 문자열을 캐스팅 할 수없는 것 때문에이 코드는 작동하지 않습니다. 이것은 문자열이 ISO 형식이기 때문에 나 혼란스럽고 다음과 같이 구문 분석하려고하면 작동합니다 :
np.datetime64(str(np.datetime64('now','us')))
.
코드 샘플 : 사전에
import numpy as np
import pandas as pd
class PlaceholderClass:
def time(self):
return str(np.datetime64('now', 'us'))
def value(self):
return 100*np.random.random_sample()
listOfThings = [PlaceholderClass() for i in range(1000)]
arr = np.array([(x.time(), x.value()) for x in listOfThings], dtype=[('time', np.datetime64), ('value', np.float)])
dataframe = pd.DataFrame(data=arr['value'], index=arr['time'])
감사
답장을 보내 주셔서 감사합니다. @PandasRocks. 그러나 저는 제 경우에 당신의 대답을 어떻게 적용 할 수 있는지 모르겠습니다. 필자의 예제에서'ListOfThings'이 주어 졌을 때, Datetime을 인덱스로 사용하여 데이터 프레임을 생성하는 방법을 설명 할 수 있습니까? – DoubleTrouble
@DoubleTrouble - 다른 행을 추가했습니다. 제네레이터 구문을 사용할 수 있으므로 팬더는 인덱스와 값을 즉석에서 생성합니다. 내가 잘못 본 것이 아니라면 Pandas 시리즈는 질적 인 배열과 구별됩니다. – PandasRocks
그건 아주 깔끔하고, 나를 도와 주셔서 고맙습니다. – DoubleTrouble