簡體   English   中英

無法獲取numpy.ndarray的大小

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM