[英]How to access index of string value in a cell of pandas data frame?
我正在使用勞工統計局的數據,它看起來像這樣:
series_id year period value
CES0000000001 2006 M01 135446.0
series_id[3][4]
表示超扇區。 例如, CES10xxxxxx01
將是Mining & Logging
。 我關注 15 個超扇區,因此我想為每個超扇區創建 15 個單獨的數據框以執行時間序列分析。 所以我試圖將每個值作為一個列表來訪問,以實現以下目標:
# *psuedocode*:
mining_and_logging = df[df.series_id[3]==1 and df.series_id[4]==0]
我可以避免編寫一個 for 循環,將每個值轉換為列表,然后按索引訪問並將行添加到新數據幀嗎?
我怎樣才能做到這一點?
執行您想要的操作並通過for
循環遞歸存儲數據幀的一種for
可能是:
首先,創建一個輔助列,讓您的生活更輕松:
df['id'] = df['series_id'][3:5] #Exctract characters 3 and 4 of every string (counting from zero)
然后,您創建一個空字典並填充它:
dict_df = {}
for unique_id in df.id.unique():
dict_df[unique_id] = df[df.id == unique_id]
現在您將擁有一個包含 15 個數據框的字典。 例如,如果要調用與id
= 01 關聯的數據幀,只需執行以下操作:
dict_df['01']
希望能幫助到你 !
通過結合 Juan C 和 G. Anderson 的答案解決了這個問題。
選擇第 3 個和第 4 個字符:
df['id'] = df.series_id.str.slice(start=3, stop=5)
然后執行以下操作來創建數據幀:
dict_df = {}
for unique_id in df.id.unique():
dict_df[unique_id] = df[df.id == unique_id]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.