我终于放弃了寻找一个漂亮的紧凑型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做我想做的事的最好方法是什么?
2条答案
按热度按时间xjreopfe1#
我将它重写为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]
但由于我没有更多的信息,这是我能想到的最好的。
如果你在问题中提供更多的数据,我相信我们能解决这个问题。
vmdwslir2#
您需要使用
.loc
:例如:
输出:
注:
根据列的内容,您可能需要在提取列表之前将列类型转换为string,否则可能会出错。