2024-09-28 22:21:28 发布
网友
我在pandas dataframe中的一个列(city)如下所示:
0 city1 1 city1 2 city2 3 city1 4 city5 5 city2 ...
个别城市发生情况:
city3 6758 city32 6400 city1 4500 city13 2440 ...
我想删除发生次数少于n次的城市
我们可以做transform
transform
N=10 newdf=df[df.groupby('city')['city'].transform('count')>N].copy()
根据你想要什么,我会使用:
import pandas as pd threshold=7 cities = ['city1' for _ in range(10)] + ['city2' for _ in range(5)] df = pd.DataFrame(cities, columns=['city']) df['freq'] = df.groupby('city')['city'].transform('count') df = df[df['freq']>threshold]
它保留了原始df中的所有行
df = pd.DataFrame(df['city'].value_counts()) df = df[df['city']<threshold]
每个城市的名字只能给你一行
将城市数据框与城市列上的城市计数数据框合并,loc on occurrences>;=门槛应该给你你想要的
我们可以做
transform
根据你想要什么,我会使用:
它保留了原始df中的所有行
每个城市的名字只能给你一行
将城市数据框与城市列上的城市计数数据框合并,loc on occurrences>;=门槛应该给你你想要的
相关问题 更多 >
编程相关推荐