[英]Python Pandas Dataframe Constructor Converts List to String
有沒有簡單的解決方案來解決以下問題:
我正在使用熊貓數據框
dataframe = pandas.DataFrame(data, index=[categorieid], columns=['title', 'categorieid'])
其中categorieid是整數值(例如[1,2,3,1])的列表,標題是字符串['a','b,'c','d']的列表。
然后我嘗試使用以下方式在特定位置訪問標題
dataframe.ix[i]['title'].values.tolist()
問題是,如果給定索引僅存在一個標題,我會遇到異常,因為熊貓會將我的標題另存為字符串而不是列表。
有沒有一種解決方案可以告訴數據框構造函數始終在每個索引處創建一個list(),即使其中僅包含一項?
感謝您的任何幫助
編輯:我打印的數據框看起來像這樣
categorieid title
0 0 a
0 0 c
1 1 b
1 1 d
0 0 e
2 2 f
調用我的values.tolist()會導致dataframe.ix [i] ['title']。values.tolist()中的_title:AttributeError:'unicode'對象沒有屬性'values'
我認為您正在通過構建DataFrame的方式使其變得更加困難。 另外,不需要訪問“值”屬性。
由於只有一個維度,因此最好使用系列。 然后,您可以使用索引選擇條目並轉換為列表。
In [12]: s = pd.Series(list('acbdef'), index=[0, 0, 1, 1, 0, 2], name='title')
In [13]: s
Out[13]:
0 a
0 c
1 b
1 d
0 e
2 f
Name: title, dtype: object
In [14]: s[1].tolist()
Out[14]: ['b', 'd']
如果由於某些原因您確實需要一個DataFrame,那么它會以類似的方式工作:
In [15]: df = pd.DataFrame(s)
In [16]: df
Out[16]:
title
0 a
0 c
1 b
1 d
0 e
2 f
In [17]: df['title'][1].tolist()
Out[17]: ['b', 'd']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.