python - 根据多列值的组合选择不同的熊猫数据框
问题描述
根据多列值的组合选择不同的熊猫数据框。
我有这样的数据:
Time locIP remIp locPort remPort numReads numWrites
0 20180529235221 127.0.0.1 127.0.0.1 22 565 36736 36751
1 20180529235221 127.0.0.1 127.0.0.1 22 566 36736 74690
2 20180529235221 127.0.0.1 127.0.0.1 12 567 36736 36749
3 20180529235221 10.8.21.41 10.8.21.34 22 565 36744 36738
4 20180529235221 10.8.21.41 10.8.21.34 22 566 36744 36738
5 20180529235225 127.0.0.1 127.0.0.1 22 565 36788 36751
6 20180529235225 127.0.0.1 127.0.0.1 22 566 36788 74700
7 20180529235225 127.0.0.1 127.0.0.1 12 567 36788 36800
我想为(locIP、remIP、LocPort remPort)和 numReads 的每个组合绘制时间序列图。
为此,我正在寻找不同的较小数据框,例如:
Time locIP remIp locPort remPort numReads numWrites
0 20180529235221 127.0.0.1 127.0.0.1 22 565 36736 36751
5 20180529235225 127.0.0.1 127.0.0.1 22 565 36736 36751
另一个:
Time locIP remIp locPort remPort numReads numWrites
20180529235221 127.0.0.1 127.0.0.1 22 566 36736 74690
20180529235225 127.0.0.1 127.0.0.1 22 566 36788 74700
我在多个列上尝试条件:
df1 =df[(df["locIP"] =='127.0.0.1') & (df["remIp"] == '127.0.0.1') & (df['locPort']== '22') & (df['remPort']=='565')]
但是在这里我必须提取条件变量中的所有组合。寻找更好的方法。
解决方案
这可能对你有用。
import itertools
#Create a dictionary to populate with a collection of unique values.
d = {}
#Grab header list
head = list(df)
#Create a collection of unique values
for x in head:
d[x] = list(set(df[x]))
#Create all possible combinations
c = list(itertools.product(d['locIP'],d['locPort'],d['remIp'],d['remPort']))
#Create list to populate with selected dataframes
NonEmpdf =[]
for x in c:
selectTxt = 'locIP == {} & locPort == {} & remIp == {} & remPort == {}'.format("'"+x[0]+"'",x[1],"'"+x[2]+"'",x[3])
print selectTxt
dfSel = df.query(selectTxt)
if dfSel.empty:
print 'Empty'
else:
NonEmpdf.append(dfSel)
#Then this is a collection of all non-empty dataframes you can iterate through and plot.
NonEmpdf
.any() 也可能对您有用。
推荐阅读
- amazon-web-services - 使用具有 Web 身份的假定角色执行 AWS Lambda
- pygame - 在pygame python中制作一个窗口
- pandas - seaborn 上 groupby 数据的联合图
- r - 如何找出 RAM 中有多少内存分配给我闪亮的应用程序
- css - 使用 NX 构建时,Sytles.css 将作为 Styles.js 复制到 dist 文件夹
- swift - 提供的 Firebase OAuth 客户端 ID 无效错误
- docker - 如何在 ansible 中运行 docker 容器?
- javascript - 如果我将我的应用程序重定向到 Next JS 页面,我们可以提取 Next JS 页面中的标题吗?
- mongodb - 用于@BsonIgnore 的工件
- python - 模拟海洋表面波