![](/img/trans.png)
[英]I get the exception "input that isn't a symbolic tensor". Can I convert numpy.ndarray to a tensor?
[英]Can't get the size of numpy.ndarray
我有一個數據框,如下所示:
version count region listing
2 v2 2 CAN [7, 8]
2 v3 3 CAN [7, 8, 9]
我想提取listing
列表的每一行,並獲得長度。 所以我做了以下事情:
group_v2_list = group[group['version'] == 'v2']['listing'].values
我得到的輸出為[list([7, 8])]
。 這里listing
列的類型是numpy.ndarray
,我在使用type(group_v2_list)
之后得到。
現在,我想獲取此group_v2_list
的元素數量,但無法獲取。
我嘗試了len(group_v2_list)
和group_v2_list.size
但都給了我1
。 我想獲取應該為2
的元素數量為7, 8
。
我該怎么辦?
您不需要為此訪問numpy
表示形式。
一種方法是使用.loc
訪問器提取序列並找到第一個元素的長度:
df = pd.DataFrame({'version': ['v2', 'v3'],
'count': [2, 3],
'region': ['CAN', 'CAN'],
'listing': [[7, 8], [7, 8, 9]]})
df_v2_list = df.loc[df['version'] == 'v2', 'listing']
res_v2 = len(df_v2_list[0])
# 2
如果過濾后的數據中包含多個元素,則可以使用pd.Series.map(len)
檢索其長度列表:
df_v_all_list = df.loc[df['version'].str.startswith('v'), 'listing']
res_all = df_v_all_list.map(len).tolist()
# [2, 3]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.