[英]how to select from a dataframe into a list where the length of the string is a certain size
我終於放棄了尋找一個不錯的緊湊型 pandas 答案並這樣做了:
states_list = self.activities_df["park_states"].unique()
for state in states_list:
if len(state) == 2:
distinct_states.append(state)
我嘗試使用 pandas 執行此操作的所有其他方法均無效。 我試過這種邏輯:
states_list = df[df.column_name.str.len() == 2]
distinct_states = states_list['column_name']
我試過這種邏輯:
list = df[(df['col_1'].str.len() == 2)]
我已經嘗試了多種其他方法以及上述方法的許多不同組合,但語法不正確。
使用 pandas 做我想做的事情的最好方法是什么?
我會將其重寫為 listcomp if 語句,語法如下my_variable = [x for x in iterable if condition]
:
sates_list = [distinct_states.append(state) for state in self.activities_df["park_states"].unique() if len(state) == 2]
但是由於我沒有更多信息,所以這是我能想到的最好的信息。
如果您在問題中提供更多數據,我相信我們可以解決。
您需要使用.loc
:
my_list = df.loc[df['col_1'].str.len() == 2, 'col_1'].values.tolist()
import pandas as pd
df = pd.DataFrame({'col_1':['a','ab','ac','abc','acb','ad']})
length_to_find = 2
my_list = df.loc[df['col_1'].str.len() == length_to_find, 'col_1'].values.tolist()
print(my_list)
['ab', 'ac', 'ad']
根據列的內容,您可能需要在提取列表之前將列類型轉換為字符串,否則最終可能會出錯。
df['col_1'] = df['col_1'].astype('str')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.