python pandas写入_python-按列数过滤Pandas df并写入数据

我有一个数据集,这些数据集位于地理位置社交媒体中,我试图通过它们按user_id大于1(发布2次或更多次的用户)的频率进行过滤.我想对此进行过滤,以便进一步清理正在创建的轨迹数据.

样例代码:

# Import Data

data = pd.read_csv('path', delimiter=',', engine='python')

#print len(data),"rows"

#print data

# Create Data Fame

df = pd.DataFrame(data, columns=['user_id','timestamp','latitude','longitude'])

#print data.head()

# Get a list of unique user_id values

uniqueIds = np.unique(data['user_id'].values)

# Get the ordered (by timestamp) coordinates for each user_id

output = [[id,data.loc[data['user_id']==id].sort_values(by='timestamp')['latitude','longitude'].values.tolist()] for id in uniqueIds]

# Save outputs

outputs = pd.DataFrame(output)

#print outputs

outputs.to_csv('path', index=False, header=False)

我尝试使用df [].value_counts()来获取user_id的计数,然后在输出= [[…… data [‘user_id’] == id> 1]的行中传递> 1. …但是,那没有用.是否可以将user_id的频率作为附加参数添加到代码中,并仅提取那些用户的信息?

样本数据:

user_id, timestamp, latitude, longitude

478134225, 3/12/2017 9:04, 38.8940974, -77.0276216

478103585, 3/12/2017 9:04, 38.882584, -77.1124701

478073193, 3/12/2017 9:07, 39.00027849, -77.09480086

476194185, 3/12/2017 9:14, 38.8048355, -77.0469214

476162349, 3/12/2017 9:16, 38.8940974, -77.0276216

478073193, 3/12/2017 9:05, 38.8549, -76.8752

477899275, 3/12/2017 9:08, 38.90181532, -77.03733586

477452890, 3/12/2017 9:08, 38.96117237, -76.95561893

478073193, 3/12/2017 9:05, 38.7188716, -77.1542684

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值