python - 过滤熊猫数据框
问题描述
假设我们有一个 pandas 数据框 df
,其中有一列 id
大约有 5 行。在下面的代码中,为什么我仍然得到过滤后的数据帧的长度为5:
import pickle
import gzip
import bz2
import pandas as pd
import os
import _pickle as cPickle
import bz2
from downcast import reduce
def load(filename):
"""
Load from filename using pickle
@param filename: name of file to load from
@type filename: str
"""
try:
f = bz2.BZ2File(filename, 'rb')
except:
sys.stderr.write('File ' + filename + ' cannot be read\n')
sys.stderr.write(details)
return
myobj = cPickle.load(f)
f.close()
return myobj
df=pd.DataFrame({"ids":[1,2,3,4,5]})
print(df.shape)
sfile = bz2.BZ2File('df_list_small', 'w')
pickle.dump(df, sfile)
这给出了 的形状 (5,1)
。
df_new= load('df_list_small')
df_new = reduce(df_new)
all_groups = {ident:df_new for ident,df_new in df_new.groupby('ids')}
ids = 1
df_test = all_groups[ids]
print(df_test.shape)
下面给出了一个形状 (1,1)
所以也许它只适用于某些文件?
解决方案
我想到了。过滤后的数据框将具有与原始数据框相同的维度,因为它们是相等的。如果我放了一个不同的 id,那么过滤后的数据框的维度就会不同。
推荐阅读
- java - 我不能在android中改变吐司的颜色
- ios - 如何启动与使用未受保护 ATT 属性的 BLE 外围设备的配对?
- jolt - 颠簸转换以匹配多个键值
- reactjs - 用反应钩子构建的振荡器不会停止
- react-native - Apollo GraphQL 客户端不适用于 react native 的发布版本
- python - Python requests-html session GET 正确用法
- api - Flutter http [GET][200] 为空以获取确切的 API
- mysql - 如何在表达式中多次使用 COUNT() 实现 OVER?
- python - 如何在for循环中将一列数字转换为列表
- java - 使用 maven 构建项目时在中心找不到工件