사전 다테프라임 항목이 각기 다른 사이의길이 에서 작성

I have a 말하도다 사전 key-value 10 쌍. 각 항목을 가지고 누마피 어레이입니다. 그러나 이 어레이에는 디스테이징하는 모두야 대한 같지 않습니다.

각 열은 다른 항목을 보유하고 있는 다테프라임 만들 수 있습니까?

When I try.

pd.DataFrame(my_dict)

저도.

ValueError: arrays must all be the same length

이를 극복하기 위해 어떤 식으로? '난' 을 사용할 수 있어 행복하다 그 열이 더 짧은 엔트리입니다 패드 판다.

해결책
  • 의 파이썬 3.x:*
In [6]: d = dict( A = np.array([1,2]), B = np.array([1,2,3,4]) )

In [7]: DataFrame(dict([ (k,Series(v)) for k,v in d.items() ]))
Out[7]: 
    A  B
0   1  1
1   2  2
2 NaN  3
3 NaN  4
  • 의 파이썬 2.x:*

d.2템스 d.트리트마스 굈 ' ()' 을 (를) ' ()'.

해설 (11)

39 의 here& 그렇게 간단한 방법입니다.

In[20]: my_dict = dict( A = np.array([1,2]), B = np.array([1,2,3,4]) )
In[21]: df = pd.DataFrame.from_dict(my_dict, orient='index')
In[22]: df
Out[22]: 
   0  1   2   3
A  1  2 NaN NaN
B  1  2   3   4
In[23]: df.transpose()
Out[23]: 
    A  B
0   1  1
1   2  2
2 NaN  3
3 NaN  4
해설 (2)

하지만 본질적으로 같은 방식으로 같은 일을 지금도 청소 장치 up your 구문을 다른 대답을 있다 (아래 참조).

>>> mydict = {'one': [1,2,3], 2: [4,5,6,7], 3: 8}

>>> dict_df = pd.DataFrame({ key:pd.Series(value) for key, value in mydict.items() })

>>> dict_df

   one  2    3
0  1.0  4  8.0
1  2.0  5  NaN
2  3.0  6  NaN
3  NaN  7  NaN

유사한 구문을 열거합니다 대해 제공되고, 고쳐주렴:

>>> mylist = [ [1,2,3], [4,5], 6 ]

>>> list_df = pd.DataFrame([ pd.Series(value) for value in mylist ])

>>> list_df

     0    1    2
0  1.0  2.0  3.0
1  4.0  5.0  NaN
2  6.0  NaN  NaN

열거합니다 다른 구문 입니다.

>>> mylist = [ [1,2,3], [4,5], 6 ]

>>> list_df = pd.DataFrame({ i:pd.Series(value) for i, value in enumerate(mylist) })

>>> list_df

   0    1    2
0  1  4.0  6.0
1  2  5.0  NaN
2  3  NaN  NaN

이러한 경우에는 어떻게 확인할 수 있는 모든 데이터 형식 '판다' 는 아마 주의해야 한다 단축시킵니다 열 것입니다. '난' 열 (실종) 를 포함하는 모든 값들은 변환하지는 부동 소수점, 예를 들어.

해설 (0)

39 의 질문이예요 OP& 직접 답변할 때 아닙니다. 내가 찾은 이 되기 위해 제 때 로켈이 내가 가진 우수한 솔루션 및 I& 불평등한 어레이에는; d # 39 나누고 싶다.

[from 판다 문서용으로] [1]

In [31]: d = {'one' : Series([1., 2., 3.], index=['a', 'b', 'c']),
   ....:      'two' : Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}
   ....: 

In [32]: df = DataFrame(d)

In [33]: df
Out[33]: 
   one  two
a    1    1
b    2    2
c    3    3
d  NaN    4

[1]: # 의 시리즈이거나 딕토스 충스러웠으니 딕트 http://pandas.pydata.org/pandas-docs/version/0.15.2/dsintro.html

해설 (0)

'함께' 축 '= 1' 을 사용할 수도 있습니다 페데리코 카트 목록과 함께 '' 파트리시리스 안내선:

import pandas as pd, numpy as np

d = {'A': np.array([1,2]), 'B': np.array([1,2,3,4])}

res = pd.concat([pd.Series(v, name=k) for k, v in d.items()], axis=1)

print(res)

     A  B
0  1.0  1
1  2.0  2
2  NaN  3
3  NaN  4
해설 (0)

그런 다음 두 흐름선 작동합니까.

pd.DataFrame.from_dict(df, orient='index').transpose() #A

pd.DataFrame(dict([ (k,pd.Series(v)) for k,v in df.items() ])) #B (Better)

단, 4 배 속도, ve got a # 39 의 %timeit 주피터 I& vs A, B 의 비율이 상당히 인상적이군 원하는거요 작업할 때 특히 거대한 데이터 집합 (주로 대형 열 수 / 기능).

해설 (0)

난 ',' t want it 표시하십시오 don& 경우 # 39, & # 39 가지고 있고, 두 개의 특정 사이의길이 추가에는 space& # 39. 나머지 각 셀은 도 사용할 수 있습니다.

import pandas

long = [6, 4, 7, 3]
short = [5, 6]

for n in range(len(long) - len(short)):
    short.append(' ')

df = pd.DataFrame({'A':long, 'B':short}]
# Make sure Excel file exists in the working directory
datatoexcel = pd.ExcelWriter('example1.xlsx',engine = 'xlsxwriter')
df.to_excel(datatoexcel,sheet_name = 'Sheet1')
datatoexcel.save()

   A  B
0  6  5
1  4  6
2  7   
3  3   

2 개 이상 있는 경우에는 사이의길이 항목을 만들어 사용하는 것이 좋습니다 함수은 유사한 수법이다.

해설 (0)