将数据帧分成两部分并使用波形符 ~ 作为变量

2023-12-22

我想在 Python 3 中用 Pandas 做 2 个类似的操作。 一个带波浪号,另一个不带波浪号。

1 - df = df[~(df.teste.isin(["Place"]))] 
2 - df = df[(df.teste.isin(["Place"]))]

我尝试将波形符声明为变量,这样我就可以只写一行,然后决定是否要使用波形符。但它不起作用:

tilde = ["~", ""]
df = df[tilde[0](df.teste.isin(["Place"]))]

是否可以做一些可以减少我的代码的事情?因为我写了很多相同的行只是交换波浪号......

Thanks!

为什么我想要波浪号作为变量:

def server_latam(df):
    df.rename(columns={'Computer:OSI':'OSI'}, inplace=True) 
    df = df[~(df.teste.isin(["Place"]))]

    df1 = df.loc[df.model != 'Virtual Platform', 'model'].count()
    print("LATAM")
    print("Physical Servers: ",df1)
    df2 = df.loc[df.model == 'Virtual Platform', 'model'].count()
    print("Virtual Servers: ",df2)
    df3 = df.groupby('platformName').size().reset_index(name='by OS: ')
    print(df3)

def server_latam_without_tilde(df):
    df.rename(columns={'Computer:OSI':'OSI'}, inplace=True) 
    df = df[(df.teste.isin(["Place"]))]

    df1 = df.loc[df.model != 'Virtual Platform', 'model'].count()
    print("LATAM")
    print("Physical Servers: ",df1)
    df2 = df.loc[df.model == 'Virtual Platform', 'model'].count()
    print("Virtual Servers: ",df2)
    df3 = df.groupby('platformName').size().reset_index(name='by OS: ')
    print(df3)

每个函数的第二行都会出现波形符。


对于您有限的用例,您所要求的好处有限。

GroupBy

Your real然而,问题是您必须创建的变量数量。你可以通过以下方式将它们减半GroupBy和一个经过计算的石斑鱼:

df = pd.DataFrame({'teste': ['Place', 'Null', 'Something', 'Place'],
                   'value': [1, 2, 3, 4]})

dfs = dict(tuple(df.groupby(df['teste'] == 'Place')))

{False:        teste  value
        1       Null      2
        2  Something      3,

 True:         teste  value
            0  Place      1
            3  Place      4}

然后通过访问您的数据框dfs[0] and dfs[1], since False == 0 and True == 1. There is最后一个例子的好处是。现在您不再需要不必要地创建新变量。您的数据框是有组织的,因为它们存在于同一个字典中。

函数调度

您的精准要求can可以通过operator模块和恒等函数:

from operator import invert

tilde = [invert, lambda x: x]

mask = df.teste == 'Place'  # don't repeat mask calculations unnecessarily

df1 = df[tilde[0](mask)]
df2 = df[tilde[1](mask)]

顺序拆包

如果您的目的是使用一行,请使用序列解包:

df1, df2 = (df[func(mask)] for func in tilde)

请注意,您可以复制GroupBy结果通过:

dfs = dict(enumerate(df[func(mask)] for func in tilde)

但这是冗长且令人费解的。坚持GroupBy解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将数据帧分成两部分并使用波形符 ~ 作为变量 的相关文章

随机推荐

  • Java图像缩放japplet

    我正在尝试制作一个小程序 允许我打开 放大和缩小图像 我有一个正在运行的小程序 但在缩放方面遇到了问题 关于从这里前往哪里有什么想法吗 这就是我到目前为止所拥有的 图像缩放 import javax swing import java aw
  • Java iText 页脚

    我正在尝试使用 JSP 页面生成 PDF 我的编码大纲如下 Document document new Document PageSize A4 70 Left 70 Right 140 Top 30 Bottom response set
  • Java中如何保证文件的原子移动或异常?

    在我的一个项目中 我对一个 JRE 中的一个文件进行并发写入访问 并且希望通过首先写入临时文件 然后使用原子移动将该临时文件移动到目标来处理该问题 我不关心写入访问的顺序等 我需要保证的是在任何给定时间单个文件都是可用的 我已经知道 Fil
  • 如何将txt文件中的内容复制到剪贴板? [复制]

    这个问题在这里已经有答案了 我的桌面上有一个 txt 文件 test txt 我想打开该 txt 文件并将所有内容复制到剪贴板 我该怎么做 我想出了如何打开文件并读取行 path C Users Username Desktop test
  • Textblob - HTTPError:HTTP 错误 429:请求过多

    我有一个数据框 其中一列的每一行都有一个字符串列表 平均而言 每个列表有 150 个单词 每个单词约 6 个字符 数据帧的 700 行中的每一行都是关于一个文档 每个字符串是该文档的一个单词 所以基本上我已经将文档中的文字标记化了 我想检测
  • 使用图形密集型多点触控应用程序,XNA 还是 WPF?

    我即将开始开发多点触控应用程序 我需要在 WPF 和 XNA 之间做出选择 哪个跑得更快 WPF 已经拥有通过 TUIO 输入支持多点触控的库 有谁知道类似的库 甚至只是示例代码在 XNA 中拖动 旋转 移动对象 谢谢 西南 触摸只是获取用
  • 在 JSch 中使用 ChannelSftp 传输文件夹和子文件夹?

    我想使用 JSch 传输文件夹和子文件夹ChannelSftp 我可以使用成功传输文件channelsftp put src dest 命令但这不适用于文件夹 至少我无法使其工作 那么有人可以解释一下如何使用传输文件夹和子文件夹吗Chann
  • 如何将 Javascript 文件导入 Haml 视图?

    我想在 Haml 视图中包含一些 Javascript 功能 但我不希望将其插入到每个视图中 我是否必须将 Javascript 文件放在 public javascripts 中 还是可以将其放在 app assets javascrip
  • 使用@ViewBuilder创建支持多个子视图的视图

    SwiftUI 中的某些视图 例如 VStack 和 HStack 支持将多个视图作为子视图 如下所示 VStack Text hello Text world 据我收集 他们使用视图生成器 https developer apple co
  • 如何解决重叠轴刻度标签

    我正在研究来自 SDSS 斯隆数字巡天 的数据来绘制和分析恒星的光谱 为此 我从他们的网站下载了一个 csv 文件 从中提取每一行及其数据 然后绘制该数据 数据的格式为波长 通量 最佳拟合 SkyFlux 但我只对波长和最佳拟合真正感兴趣
  • Android模拟器太慢了,无法使用

    我对Android模拟器的体验是它太慢了以至于无法使用 我看到与该问题相关的线索可以追溯到一年多前 对问题缺乏一致的回答是不可接受的 这不是社区的错 问题 有谁经历过速度极其缓慢 启动时间超过 15 分钟 实际解决了这个问题使得启动时间不到
  • 使用 JQuery 将 拖放到段落中

    我需要拖放 span to p 我的代码可以运行 但有 3 个问题 当我编辑时 p p 通过输入内容 假设三个单词 并拖动后 span to span p p 新输入的单词充当一个单词 因此不能在这些新输入的内容之间放置可拖动组件 关闭后
  • “NODE_OPTIONS”未被识别为内部或外部命令 - 仍然是一个问题

    我正在遵循以下指南here https nextjs org docs advanced features debugging在 nextjs 应用程序上 在 Windows 上使用 VSCode 它说使用脚本 dev NODE OPTIO
  • 如何在 Windows 应用商店应用程序 C# 中读取 mp3 文件的每分钟节拍数标签?

    我正在尝试读取嵌入在 mp3 文件中的 bpm 如下所示 我尝试过使用 Windows Storage FileProperties MusicProperties 但它只包含标题 歌手等 它无法读取我之前显示的 bpm 我正在调查http
  • 仅重用 Crystal Reports 刷新时的某些参数?

    我有一个水晶报表 它有两个参数 其中之一由运行报表的 C 应用程序自动设置 但另一个由用户设置 我想这样做 以便当用户刷新报表时 仅提示用户输入的参数 我知道 ReuseParameterValuesOnRefresh 属性 但这使得所有参
  • wso2 Esb 中代理服务和 API 服务的区别

    wso2esb 中的代理服务和 API 服务有什么区别 为了公开我的服务 我可以提供代理 URL 和 API URL 那么在哪种情况下两者会有所不同 在什么情况下可以使用代理 在什么情况下可以使用API 请帮助我理解 API 具有资源 因此
  • Apache-HttpComponents:套接字关闭错误

    我正在编写一个 Java 程序 它使用 Apache HttpComponents 加载页面并将其 HTML 打印到控制台 但是 该程序在抛出此错误之前仅打印部分 HTML Exception in thread main java net
  • 使用 fs.writeFile() 在 Node.js 中创建 .wav 文件

    我正在尝试创建一个 wav从 Node JS 中的数据块中读取文件 使用fs writeFile 首先 这可能吗 我目前正在尝试这个 fs writeFile filename wav blob recording function err
  • 文档数据库中架构更改的模式

    在我开始之前我想为此道歉 我的问题的通用类型 我确信整本书 可以就该特定主题进行写作 假设您有一个包含多个文档模式的大型文档数据库 以及每个模式的数百万个文档 在应用程序的生命周期中 需要更改架构 经常查看已存储的文档 和内容 这样的改变可
  • 将数据帧分成两部分并使用波形符 ~ 作为变量

    我想在 Python 3 中用 Pandas 做 2 个类似的操作 一个带波浪号 另一个不带波浪号 1 df df df teste isin Place 2 df df df teste isin Place 我尝试将波形符声明为变量 这