2017-04-03 12 views
5

मैं एक सूची से एक डेटा फ्रेम बनाने के लिए निम्नलिखित कोड का उपयोग कर रहा से एक पांडा डेटा फ्रेम बनाने:पायथन: एक सूची

test_list = ['a','b','c','d'] 
df_test = pd.DataFrame.from_records(test_list, columns=['my_letters']) 
df_test 

उपरोक्त कोड ठीक काम करता है। तब मैं एक और सूची के लिए एक ही दृष्टिकोण की कोशिश की:

import pandas as pd 
q_list = ['112354401', '116115526', '114909312', '122425491', '131957025', '111373473'] 
df1 = pd.DataFrame.from_records(q_list, columns=['q_data']) 
df1 

लेकिन यह मुझे निम्न त्रुटियां इस समय दिया:

--------------------------------------------------------------------------- 
AssertionError       Traceback (most recent call last) 
<ipython-input-24-99e7b8e32a52> in <module>() 
     1 import pandas as pd 
     2 q_list = ['112354401', '116115526', '114909312', '122425491', '131957025', '111373473'] 
----> 3 df1 = pd.DataFrame.from_records(q_list, columns=['q_data']) 
     4 df1 

/usr/local/lib/python3.4/dist-packages/pandas/core/frame.py in from_records(cls, data, index, exclude, columns, coerce_float, nrows) 
    1021   else: 
    1022    arrays, arr_columns = _to_arrays(data, columns, 
-> 1023            coerce_float=coerce_float) 
    1024 
    1025    arr_columns = _ensure_index(arr_columns) 

/usr/local/lib/python3.4/dist-packages/pandas/core/frame.py in _to_arrays(data, columns, coerce_float, dtype) 
    5550   data = lmap(tuple, data) 
    5551   return _list_to_arrays(data, columns, coerce_float=coerce_float, 
-> 5552        dtype=dtype) 
    5553 
    5554 

/usr/local/lib/python3.4/dist-packages/pandas/core/frame.py in _list_to_arrays(data, columns, coerce_float, dtype) 
    5607   content = list(lib.to_object_array(data).T) 
    5608  return _convert_object_array(content, columns, dtype=dtype, 
-> 5609         coerce_float=coerce_float) 
    5610 
    5611 

/usr/local/lib/python3.4/dist-packages/pandas/core/frame.py in _convert_object_array(content, columns, coerce_float, dtype) 
    5666    # caller's responsibility to check for this... 
    5667    raise AssertionError('%d columns passed, passed data had %s ' 
-> 5668         'columns' % (len(columns), len(content))) 
    5669 
    5670  # provide soft conversion of object dtypes 

AssertionError: 1 columns passed, passed data had 9 columns 

क्यों एक और नहीं एक सूची के लिए, लेकिन एक ही दृष्टिकोण काम करेंगे? कोई विचार क्या गलत हो सकता है? आपका बहुत बहुत धन्यवाद!

उत्तर

15

DataFrame.from_records स्ट्रिंग को एक वर्ण सूची के रूप में मानता है। इसलिए इसे स्ट्रिंग की लंबाई के रूप में कई स्तंभों की आवश्यकता है।

आप बस DataFrame कन्स्ट्रक्टर का उपयोग कर सकते हैं।

In [3]: pd.DataFrame(q_list, columns=['q_data']) 
Out[3]: 
     q_data 
0 112354401 
1 116115526 
2 114909312 
3 122425491 
4 131957025 
5 111373473 
संबंधित मुद्दे