我试图将我的Stata代码重新编程为Python,以提高速度,而我的方向是PANDAS。但是,我很难集中精力处理数据。
假设我要遍历列标题“ ID”中的所有值。如果该ID与特定数字匹配,那么我想更改两个相应的值FirstName和LastName。
在Stata中,它看起来像这样:
replace FirstName = "Matt" if ID==103
replace LastName = "Jones" if ID==103
因此,这将替换FirstName中与Matt的ID == 103对应的所有值。
在PANDAS中,我正在尝试类似的方法
df = read_csv("test.csv")
for i in df['ID']:
if i ==103:
...
不知道从这里去哪里。有任何想法吗?
一种选择是使用Python的切片和索引功能来逻辑评估条件所在的位置并覆盖其中的数据。
假设您可以使用直接将数据加载到pandas其中,pandas.read_csv则以下代码可能对您有所帮助。
import pandas
df = pandas.read_csv("test.csv")
df.loc[df.ID == 103, 'FirstName'] = "Matt"
df.loc[df.ID == 103, 'LastName'] = "Jones"
如评论中所述,您也可以一次性完成对两列的分配:
df.loc[df.ID == 103, ['FirstName', 'LastName']] = 'Matt', 'Jones'
请注意,您将需要pandas使用0.11或更高版本来进行loc覆盖分配操作。
另一种方法是使用所谓的链式分配。这种行为的稳定性较差,因此不是最佳解决方案(在文档中明确建议不要这样做),但是了解以下信息很有用:
import pandas
df = pandas.read_csv("test.csv")
df['FirstName'][df.ID == 103] = "Matt"
df['LastName'][df.ID == 103] = "Jones"
我试图用Python复制我的Stata代码,我被指向熊猫的方向。然而,我很难思考如何处理数据。 假设我想遍历列标题“ID”中的所有值。如果该ID与一个特定的数字匹配,那么我想更改两个相应的值FirstName和LastName。 在Stata,它看起来像这样: 因此,这将替换 FirstName 中与 ID == 103 到 Matt 的值对应的所有值。 在熊猫身上,我正在尝试这样的东西 不知道该
问题内容: 我需要基于Pandas数据框中的另一列的值来设置一列的值。这是逻辑: 我无法做到这一点,我想要做的就是简单地创建一个具有新值的列(或更改现有列的值:任何一个都对我有用)。 如果我尝试运行上面的代码,或者将其编写为函数并使用apply方法,则会得到以下信息: 问题答案: 一种方法是将索引与配合使用。 例 在没有示例数据框的情况下,我将在此处进行补充: 假设您想 创建一个新列 ,除wher
我对谷歌表单和电子表格非常陌生,我想做的是,我的表单中有一个“年龄”问题,当用户提交表单时,我想要它,这样,如果年龄低于18岁,一个单元格就会得到值“MINOR”,如果是18岁或以上,就会用“MAJOR”填充。 基本上,我想根据“AGE”的值动态地为这个单元格添加一个值。 我现在正在做的是: 其中,是值次要/主要的单元格。
问题内容: 我有一个名为Vendor的表,在此表中有一个名为AccountTerms的列,该列仅显示一个值(即0、1、2、3),依此类推。我也有一个要使用()的列,以反映该值的含义,例如: 等等… 我需要的是一个脚本,它将查看AccountTerms中的值,然后将更新以显示上面显示的单词值。我该怎么做呢? 问题答案: 我将尝试以一种尽可能简单的方式来解释这一点,以便于理解: 假设您有一个这样的表设
问题内容: 在Mysql中: 我表中的城市有重复的值: 座席城市: 该表中的数据格式为: 与…一样: 表国家: 我想知道每个国家有多少座城市。喜欢: 因此,我有2个查询: 但是此值应来自: 现在,如何获得所需的表? 问题答案: 带有: 结果:
问题内容: 我在SQLite中有两个表,看起来像这样 我试图编写查询以基于表Y中的记录更新表X上的记录。更新的条件如下所示 但是当我尝试这样做时,我收到一条错误消息,说 没有这样的列:table_y.c2 问题答案: 删除的答案关于错误的原因是正确的:必须在查询中 引入 关系标识符(例如,使用FROM / JOIN),然后才能使用它。 虽然SQLite的不 不 支持(因此没有办法直接引入查找关系)
我有两个熊猫数据框 步骤1:根据df1中唯一的“val”在df2中创建列,如下所示: 步骤2:对于flag=1的行,AA_new将计算为var1(来自df2)*组“A”和val“AA”的df1的'cal1'值*组“A”和val“AA”的df1的'cal2'值,类似地,AB_new将计算为var1(来自df2)*组“A”和val“AB”的df1的'cal1'值*组“A”和val“AB”的df1的'c