問題:查找在 df.ZIP 中不重復的 ZIP(必須出現不超過一次)并且 df.ST 沒有“.”值。
因此,我對原始資料框進行了子集化并應用了 Groupby - 這仍然帶來了一些不符合子集標準的行(df.ST!= '.')。所以我通過使用 copy() 選項創建了一個單獨的 df_us 。Groupby 仍然給出相同的索引。
grouped = df[df.ST != '.'].groupby(['ZIP_CD'],sort=False) # grouping
df_size = pd.DataFrame({'ZIP':grouped.size().index, 'Count':grouped.size().values}) # Forming df around the group
df_count = df_size[df_size.Count==1] #df with Count=1
one_index = df_count.index.tolist() #gathering index
df_one = df.loc[one_index] #final df
df_us = df_data[df.ST != '.'].copy() # tried this too
上面的最后一個代碼仍然為“。”的值提供了一些索引。當我分組時。但 df_us 沒有任何 '.' 一點也不。所以這導致與上述方法具有相同的索引列 - 但對于“。” 值,其余的行值是空的,因為 df_us 沒有它們!
groupy 正在使用 '.' 查找那些索引。無論我做了什么,我的價值觀。有什么解決辦法嗎?
更新:樣本資料 =
索引 ST ZIP_CD
123 ca 94025
124 Toronto 。
125 ga 30306
126 意大利。
127 約 94025
所以正確答案是
ST ZIP_CD
0 123 ca 94025
uj5u.com熱心網友回復:
# use lot where zip_cd ne .
# and zip_cd is not duplicated
(df.loc[df['ZIP'].ne('.') &
~df['ZIP'].isin(df.loc[df.duplicated(subset='ZIP')]['ZIP'])]
)
index ST ZIP_CD
0 123 ca 94025
2 125 ga 30306
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/517800.html
