首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Pandas Dataframe -如何检查列中数值的符号,如果为负则删除符号并在发生这种情况时创建另一列?

Pandas Dataframe是Python中一个强大的数据处理库,用于处理和分析结构化数据。要检查列中数值的符号并删除负号,并在发生这种情况时创建另一列,可以使用以下步骤:

  1. 导入必要的库和模块:
代码语言:txt
复制
import pandas as pd
  1. 创建一个示例的Dataframe:
代码语言:txt
复制
data = {'A': [1, -2, 3, -4, 5],
        'B': [-6, 7, -8, 9, -10]}
df = pd.DataFrame(data)
  1. 使用apply函数和lambda表达式来检查列中数值的符号,并删除负号:
代码语言:txt
复制
df['A'] = df['A'].apply(lambda x: abs(x))
  1. 创建另一列来标记原始列是否为负数:
代码语言:txt
复制
df['A_negative'] = df['A'].apply(lambda x: True if x < 0 else False)

完整的代码如下:

代码语言:txt
复制
import pandas as pd

data = {'A': [1, -2, 3, -4, 5],
        'B': [-6, 7, -8, 9, -10]}
df = pd.DataFrame(data)

df['A'] = df['A'].apply(lambda x: abs(x))
df['A_negative'] = df['A'].apply(lambda x: True if x < 0 else False)

print(df)

这样,你就可以得到一个新的Dataframe,其中列'A'中的负号已被删除,并且有一个新的列'A_negative'来标记原始列是否为负数。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【精心解读】用pandas处理大数据——节省90%内存消耗小贴士

下图所示pandas如何存储我们数据表前十二: 可以注意到,这些数据块没有保持对列名引用,这是由于为了存储dataframe真实数据,这些数据块都经过了优化。...对于包含数值型数据(比如整型和浮点型)数据块,pandas会合并这些,并把它们存储一个Numpy数组(ndarray)。Numpy数组是在C数组基础上创建,其值在内存是连续存储。...选理解子类(Subtypes) 刚才我们提到,pandas在底层将数值型数据表示成Numpy数组,并在内存连续存储。这种存储方式消耗较少空间,并允许我们较快速地访问数据。...我们再创建一个原始dataframe副本,将其数值赋值优化后类型,再看看内存用量整体优化效果。 可以看到通过我们显著缩减数值内存用量,我们dataframe整体内存用量减少了7%。...下面我们写一个循环,对每一个object进行迭代,检查其唯一值是否少于50%,如果是,转换成类别类型。

8.6K50

Pandas使用技巧:如何将运行内存占用降低90%!

在这篇文章,我们将了解 pandas 内存使用,以及如何只需通过为选择合适数据类型就能将 dataframe 内存占用减少近 90%。...pandas 会自动我们检测数据类型,发现其中有 83 数据是数值,78 是 object。object 是指有字符串或包含混合数据类型情况。...这是因为这些块存储 dataframe 实际值进行了优化。pandas BlockManager 类负责保留行列索引与实际块之间映射关系。...让我们原始 dataframe 创建一个副本,并用这些优化后替换原来,然后看看我们现在整体内存用量。...如果我们一开始甚至无法创建 dataframe,我们又可以怎样应用节省内存技术呢? 幸运是,我们可以在读入数据同时指定最优类型。

3.5K20

【呕心总结】python如何与mysql实现交互及常用sql语句

我在最初一个月实践,最常出现错误有: 值引用没有加上引号; 符号错乱:多一个符号,少一个符号; 值类型不符合:不管 mysql 表格该值是数,还是文本,在定义 sql 语句字符串,对每个值都需要转化为字符串...属性包括:类型,最大长度,是否空,默认值,是否重复,是否索引。通常,直接通过 pandas pd.io.sql.to_sql() 一次性创建表格并保存数据默认属性并不合需求。...UPDATE table_name SET columns_name = new_value 【条件】; 新数值如果数值类型直接写数值即可;如果是文本类型,必须要加上双引号,比如,“your_new_value...做这项操作前,必须确认清楚自己意图,毕竟一旦发生,无可挽回。 如果条件留空,将保留表结构,而删除所有数据行。...想要删除整张表格,什么都不留下,执行: DELETE TABLE table_name; 俗称“删库”就是删掉整个数据库,虽然实战几乎不会用到,但作为新手经常手误,在练习阶段安全起见,最好还是专门创建一个

2.9K20

教程 | 简单实用pandas技巧:如何将内存占用降低90%

在这篇文章,我们将了解 pandas 内存使用,以及如何只需通过为选择合适数据类型就能将 dataframe 内存占用减少近 90%。 ?...pandas 会自动我们检测数据类型,发现其中有 83 数据是数值,78 是 object。object 是指有字符串或包含混合数据类型情况。...这是因为这些块存储 dataframe 实际值进行了优化。pandas BlockManager 类负责保留行列索引与实际块之间映射关系。...让我们原始 dataframe 创建一个副本,并用这些优化后替换原来,然后看看我们现在整体内存用量。...如果我们一开始甚至无法创建 dataframe,我们又可以怎样应用节省内存技术呢? 幸运是,我们可以在读入数据同时指定最优类型。

3.8K100

没错,这篇文章教你妙用Pandas轻松处理大规模数据

在这篇文章,我们将介绍 Pandas 内存使用情况,以及如何通过为数据框(dataframe)(column)选择适当数据类型,将数据框内存占用量减少近 90%。...pdgl = pd.read_csv('game_logs.csv')gl.head() 我们总结了一些重要,但是如果你想查看所有的指南,我们也整个数据集创建了一个数据字典: 我们可以使用...DataFrame.info() 方法我们提供数据框架更多高层次信息,包括数据大小、类型、内存使用情况信息。...每当我们选择、编辑、或删除某个值dataframe class 会和 BlockManager class 进行交互,将我们请求转换为函数和方法调用。...和之前相比 在这种情况下,我们将所有对象都转换为 category 类型,但是这种情况并不符合所有的数据集,因此务必确保事先进行过检查

3.6K40

Pandas知识点-缺失值处理

数据处理过程,经常会遇到数据有缺失值情况,本文介绍如何Pandas处理数据缺失值。 一、什么是缺失值 对数据而言,缺失值分为两种,一种是Pandas空值,另一种是自定义缺失值。 1....将how参数修改为all,只有一行(或)数据全部都是空值才会删除该行(或)。 thresh: 表示删除空值界限,传入一个整数。...如果一行(或)数据少于thresh个非空值(non-NA values),删除。也就是说,一行(或)数据至少要有thresh个非空值,否则删除。...limit: 表示填充执行次数。如果是按行填充,填充一行表示执行一次,按同理。 在缺失值填充,填充值是自定义,对于数值型数据,最常用两种填充值是用该均值和众数。...对于这种情况,需要在填充前人工进行判断,避免选择不适合填充方式,并在填充完成后,再检查一次数据是否还有空值。

4.8K40

7步搞定数据清洗-Python数据清洗指南

也可以用这两条来看: #1.1查看每一数据类型 DataDF.dtypes #1.2有多少行,多少列 DataDF.shape # 2.检查缺失数据 # 如果你要检查每列缺失数据数量,使用下列代码是最快方法...2)修改列名:该数据名称不易于理解,需要改列名 3)选择部分子集:因为有部分列在数据分析不需要用到 4)可能存在逻辑问题需要筛选:比如Unit Price 5)格式一致化:Description...一般来说价格不能为,所以从逻辑上来说如果价格是小于0数据应该予以筛出 #删除异常值:通过条件判断筛选出数据 #查询条件 querySer=DataDF.loc[:,'Quantity']>0 #应用查询条件...值 2)在pandas,将缺失值表示NA,表示不可用not available。...如果想了解更多 fillna() 详细信息参考 pandas.DataFrame.fillna pandas.pydata.org 2) 以同一指标的计算结果(均值、中位数、众数等)填充缺失值 平均值

4.4K20

Python 数据分析(PYDA)第三版(二)

这种情况下,变成了纯 Python 对象数组。 内部字典键被组合以形成结果索引。...如果指定了显式索引,这种情况不成立: In [76]: pd.DataFrame(populations, index=[2001, 2002, 2003]) Out[76]: Ohio Nevada...NumPy 结构化/记录数组 被视为“数组字典”情况 Series 字典 每个值都变成了一如果没有传递显式索引,每个 Series 索引被合并在一起以形成结果行索引 字典字典 每个内部字典都变成了一...在这种情况下,我们意思是匹配 DataFrame 行索引(axis="index")并在之间广播。...-0.55 dtype: float64 当整行或整列包含所有 NA 值,总和 0,而如果任何值不是 NA,结果 NA。

23100

整理了 25 个 Pandas 实用技巧,拿走不谢!

这种情况下,你可以使用Numpyrandom.rand()函数,告诉它行数和数,将它传递给DataFrame constructor: ?...该数据集描述了每个国家平均酒消费量。如果你想要将行序反转呢? 最直接办法是使用loc函数并传递::-1,跟Python列表反转使用切片符号一致: ?...将字符型转换为数值型 让我们来创建另一个示例DataFrame: ? 这些数字实际上储存为字符型,导致其数据类型object: ? 为了对这些进行数学运算,我们需要将数据类型转换成数值型。...你可以对前两使用astype()函数: ? 但是,如果你对第三也使用这个函数,将会引起错误,这是因为这一包含了破折号(用来表示0)但是pandas并不知道如何处理它。...为了避免这种情况,我们需要告诉concat()函数来忽略索引,使用默认整数索引: ? 10. 按从多个文件构建DataFrame 上一个技巧对于数据集中每个文件包含行记录很有用。

3.2K10

《机器学习》(入门1-2章)

创建数组:pandas.Series([1,2,3]) 第一索引,第二数值 a=pandas.DataFrame(numpy.arange(12),reshape(3,4)) a[1] 提取第一...a.iloc[0] 提取第一行 标准DataFramepandas.DataFrame(numpy.arange(16),reshape(4,4), columns=[‘col1’,‘col2...(’/data.csv’,index=false) 删除特征行:a.dropna() 删除特征:a.dropna(axis=1,how=‘any’) 空值替换:a.fillna(0) 空值用均值替换...条件概率:在A事件发生情况下,B事件发生概率,表示A和B有交集。 联合分布:表示2个不相关分布,联合组成概率事件。...2.如果A所有奇数阶顺序主子式都小于0(小于或等于0),所有的偶数阶顺序主子式都大于0(大于或等于0),那么A是定矩阵(半定矩阵)。 3.计算顺序主子式是:对角线相乘后相加。

1.3K31

整理了25个Pandas实用技巧(上)

这种情况下,你可以使用Numpyrandom.rand()函数,告诉它行数和数,将它传递给DataFrame constructor: ?...这种方式很好,但如果你还想把列名变为非数值,你可以强制地将一串字符赋值给columns参数: ? 你可以想到,你传递字符串长度必须与数相同。...最直接办法是使用loc函数并传递::-1,跟Python列表反转使用切片符号一致: In [21]: drinks.loc[::-1].head() Out[21]: country beer_servings...将字符型转换为数值型 让我们来创建另一个示例DataFrame: ? 这些数字实际上储存为字符型,导致其数据类型object: ? 为了对这些进行数学运算,我们需要将数据类型转换成数值型。...为了避免这种情况,我们需要告诉concat()函数来忽略索引,使用默认整数索引: ? 按从多个文件构建DataFrame 上一个技巧对于数据集中每个文件包含行记录很有用。

2.2K20

Pandas 学习手册中文第二版:6~10

如果在Series或DataFrame对象均未找到表示结果标签,这些值将用NaN填充。...如果一个变量移动,则无法对另一个变量移动做出任何预测。 如果相关系数 -1.0 ,变量将完全负相关(或成反相关),并且彼此相对移动。 如果一个变量增加,另一个变量按比例减少。...数据形状已更改,现在有其他行或,在重塑无法确定 可能还有更多原因,但是总的来说,这些情况的确会发生,作为 Pandas 用户,您将需要解决这些情况才能进行有效数据分析 让我们开始研究如何通过创建具有一些缺失数据点数据帧来处理缺失数据...要注意另一点是,Pandas DataFrame不是电子表格,在电子表格单元分配了公式,并且当公式引用单元发生更改时可以重新计算。...如果您希望这种情况发生,那么只要相关数据发生变化,就需要执行公式。 从另一方面来说,这比电子表格更有效,因为每个小更改都不会引起一些操作。

2.3K20

Pandas学习经历及动手实践

另一方面,如果我们日常数据清理工作不是很复杂的话,你通常用几句 Pandas 代码就可以对数据进行规整。 Pandas核心数据结构:Series 和 DataFrame 这两个核心数据结构。...访问元素 一种通过默认整数索引,在 Series 对象未被显示指定 label ,都是通过索引访问;另一种方式是通过标签访问。...如果使用 infer 参数,使用 gzip、bz2、zip 或者解压文件名以 ‘.gz’、‘.bz2’、‘.zip’ 或 ‘xz’ 这些后缀文件,否则不解压。...(2.1)删除 DataFrame 不必要或行 Pandas 提供了一个便捷方法 drop() 函数来删除我们不想要或行 df2 = df2.drop(columns=['Chinese'...) #删除右边空格 df2['Chinese']=df2['Chinese'].map(str.rstrip) 如果数据里有某个特殊符号,我们想要删除怎么办?

1.7K10

最全攻略:数据分析师必备Python编程基础知识

这种方式显示代码可读性更高,通常使用四个空格或一个tab作缩进,如果是Python编程新手,要注意这一点。...在Python,索引起始位置0,例如取list1第一个位置元素: list1[0] 1 可以通过”:”符号选取指定序列位置元素,例如取第1到第3个位置元素,注意这种索引取数是前包后不包...集合(set) Python,集合(set)是一组key集合,其中key不能重复。可以通过列表、字典或字符串等创建集合,或通过“{}”符号进行创建。...在迭代次数较多情况下,使用顺承结构往往要写非常长代码,而循环结构非常简单。...在命令行打印DataFrame对象其可读性可能会略差一些,如果在jupyter notebook 执行的话,DataFrame可读性会大幅提升: ?

4.5K21

Pandas快速上手!

另一方面,如果我们日常数据清理工作不是很复杂的话,你通常用几句 Pandas 代码就可以对数据进行规整。 Pandas核心数据结构:Series 和 DataFrame 这两个核心数据结构。...访问元素 一种通过默认整数索引,在 Series 对象未被显示指定 label ,都是通过索引访问;另一种方式是通过标签访问。...如果使用 infer 参数,使用 gzip、bz2、zip 或者解压文件名以 ‘.gz’、‘.bz2’、‘.zip’ 或 ‘xz’ 这些后缀文件,否则不解压。...(2.1)删除 DataFrame 不必要或行 Pandas 提供了一个便捷方法 drop() 函数来删除我们不想要或行 df2 = df2.drop(columns=['Chinese'...) #删除右边空格 df2['Chinese']=df2['Chinese'].map(str.rstrip) 如果数据里有某个特殊符号,我们想要删除怎么办?

1.3K50

用Python也能进军金融领域?这有一份股票交易策略开发指南

您可以在aapl DataFrame创建一个新叫做diff存储结果,然后使用del再次删除它。...小贴士:请确保注释掉最后一行代码,以便aapl DataFrame 不会被删除,这样您可以检查算术运算结果!...当条件,初始化为0.0signal将被1.0覆盖。一个“信号”被创建了!如果条件假,0.0保留原始值,不生成信号。您可以使用NumPywhere()函数设置此条件。...输出signals DataFrame检查结果。重点是这个DataFrame positions和signal意义。当您继续前进,您会看到,这将变得非常重要!...你会看到你通过符号来制定查找安全结果(在这种情况下,股票),(AAPL在这种情况下)并指定到context.security。

2.9K40

针对SAS用户:Python数据分析库pandas

检查 pandas有用于检查数据值方法。DataFrame.head()方法默认显示前5行。.tail()方法默认显示最后5行。行计数值可以是任意整数值,如: ?...另外,如果你发现自己想使用迭代处理来解决一个pandas操作(或Python),停下来,花一点间做研究。可能方法或函数已经存在! 案例如下所示。...显然,这会丢弃大量“好”数据。thresh参数允许您指定要为行或保留最小非空值。在这种情况下,行"d"被删除,因为它只包含3个非空值。 ? ? 可以插入或替换缺失值,而不是删除行和。....在删除缺失行之前,计算在事故DataFrame丢失记录部分,创建于上面的df。 ? DataFrame24个记录将被删除。...记录删除部分为0.009% 除了错误情况,.dropna()是函数是静默。我们可以在应用该方法后验证DataFrameshape。 ?

12.1K20

10快速入门Query函数使用Pandas查询示例

而括号符号[]可以灵活地基于条件过滤数据帧,但是如果条件很多的话编写代码是繁琐且容易出错。...所以要过滤pandas DataFrame,需要做就是在查询函数中指定条件即可。 使用单一条件进行过滤 在单个条件下进行过滤,在Query()函数中表达式仅包含一个条件。...它返回了数量95所有行。如果用一般查询方式可以写成: df [df [“Quantity”] == 95] 但是,如果想在同一再包含一个条件怎么办?...它在括号符号又增加了一对方括号,如果是3个条件或者更多条件呢?那么他就变得难以管理。这就是Query优势了。...那么如何另一个字符串写一个字符串?

4.4K10

10个快速入门Query函数使用Pandas查询示例

而括号符号[]可以灵活地基于条件过滤数据帧,但是如果条件很多的话编写代码是繁琐且容易出错。...它返回了数量95所有行。如果用一般查询方式可以写成: df [df [“Quantity”] == 95] 但是,如果想在同一再包含一个条件怎么办?...它在括号符号又增加了一对方括号,如果是3个条件或者更多条件呢?那么他就变得难以管理。这就是Query优势了。...那么如何另一个字符串写一个字符串?将文本值包装在单个引号“”,就可以了。...与数值类似可以在同一或不同列上使用多个条件,并且可以是数值和非数值列上条件组合。 除此以外, Pandas Query()还可以在查询表达式中使用数学计算。

4.4K20
领券