亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

pandas:如何返回字符串列的字符串長度計數?

pandas:如何返回字符串列的字符串長度計數?

一只甜甜圈 2022-05-19 18:53:54
說我有一個數據框dfimport pandas as pddf = pd.DataFrame({"id":["a", "b", "aa", "aaa", "bbb", "a"]})在這種情況下,我想計算列 id 的字符串長度計數。在這個例子中id,長度為 1 的字符串有 3 個,長度為 2 的字符串有 1 個,長度為 3 的字符串有 2 個。所以我想要一個反映這些信息的表str_length  count1           32           13           2對數百萬行執行此操作的最有效方法是什么?這是我能想到的最好的,但我聽說使用apply很慢df_count = df.id.apply(lambda x: len(x)).value_counts()df_count2 = pd.DataFrame({"str_length": df_count.index.tolist(), "count": df_count})df_count2.sort_values("str_length")產生。   str_length  count1           1      32           2      13           3      2
查看完整描述

3 回答

?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

干得好


df.id.str.len().value_counts()

1    3

3    2

2    1

Name: id, dtype: int64


查看完整回答
反對 回復 2022-05-19
?
楊魅力

TA貢獻1811條經驗 獲得超6個贊

一個麻木的解決方案:


np.transpose(np.unique(df.id.map(len), return_counts=True))


Out[229]:

array([[1, 3],

       [2, 1],

       [3, 2]], dtype=int64)

創建數據框


pd.DataFrame(np.transpose(np.unique(df.id.map(len), return_counts=True)), 

             columns=['str_length', 'count'])


Out[231]:

   str_length  count

0           1      3

1           2      1

2           3      2


查看完整回答
反對 回復 2022-05-19
?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

使用 groupby 和計數。


(

    df.groupby(by=df.id.apply(len))

    .id.count()

    .to_frame('count')

    .rename_axis(index='str_length')

    .reset_index()

)


    str_length  count

0   1           3

1   2           1

2   3           2


查看完整回答
反對 回復 2022-05-19
  • 3 回答
  • 0 關注
  • 310 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號