获取比较多列的最大值并返回特定值

我有一个像这样的数据框: 序列 Duration1 Value1 Duration2 Value2 Duration3 Value3 1001 145 10 125 53 458 33 1002 475 20 175 54 652 45 1003 685 57 687 87 254 88 1004 125 54 175 96 786 96 1005 475 21 467 32 526 32 1006 325 68 301 54 529 41 1007 125 97 325 85 872 78 1008 129 15 429 41 981 82 1009 547 47 577 52 543 83 1010 666 65 722 63 257 87 我想找到持续时间的最大值 (持续时间 1 、持续时间 2 、持续时间 3),并返回相应的值和序列。 我期望的输出: 序列,持续时间 3,值 3 1008 、 981 、 82 号 ……

共8个回答,已解决, 标签: python python-3.x pandas dataframe
基于字典向数据帧添加新列

我有数据帧和字典。我需要向数据帧添加新列,并根据字典计算其值 机器学习,基于一些表格添加新功能。 分数 = {(1,45,1,1): 4,(0,1,2,1): 5} Df = pd.DataFrame (数据 = { “性别”: [1 、 0 、 1 、 0], “年龄”: [13 、 45 、 1 、 45 、 15 、 16 、 15], “胆固醇”: [1 、 2 、 1], “烟雾”: [0,0,1,1,7,8,3,4,4,2]}, Dtype = np.int64) 打印 (df,'\ n') Df ['score'] = 0 Df.score = score [(df.性别,df.年龄,df.胆固醇,df.烟雾)] 打印 (df) 我期望以下输出: 性别年龄胆固醇烟雾评分 0 1 13 1 0 0 1 1 45 2 0 0 2 0 1 2 1 5 3 1 45 1 4 4 1 15 1 7 0 5 0 16 1 8 0 6 0 16 1 3 0 7 0 16 1 4 0 8 1 15 1 4 0 9 0 15 1 2 0 ……

共7个回答, 标签: python pandas dataframe dictionary
基于多列和阈值的合并数据帧

的赏金 [https://stackoverflow.com/help/bounty]3 小时后到期。这个问题的答案有资格获得 50 英镑的声誉奖金。Ivo [/users/8839068/ivo]正在寻找一个规范答案: 我希望收到一个关于阈值和列层次的可调方法的答案。 我有两个data.frames with multiple common columns (here: date, city, ctry, and ( other_)number)。 我现在想在上面的列中合并它们,但容忍一定程度的差异: 阈值。数字 <-3 阈值。日期 <-5 # (天) 如果之间的差异date entries is > threshold.date (in days) or > threshold.numbers, I don't want the lines to be merged. Similarly, if the entry in city is a substring of the other df's entry in the city column, I want the lines to be m ……

共6个回答, 标签: r dataframe
如何在包含空列表的数据框中删除行?

我已经创建了一个包含 3 列的数据框,第三列包含列表,我想删除该单元格中包含空列表的行。 我试过了 Df [df.numbers = = [] 和 df [df.numbers = = null] 但没什么效果 姓名国家号码 刘易斯西班牙 [1,6] 英国 [诺拉] 英国安德鲁 [3,5] 结果将是一个没有 Nora 行的数据框 ……

共6个回答,已解决, 标签: python-3.x pandas dataframe
如何从 R 中的数据框中的字符串中提取数字并将其放在新列中?

我有一个简单的数据框: Df--数据的框架 (测试 = c ("test_A_1_1.txt” 、 “test_A_2_1.txt” 、 “test_A_3_1.txt”),价值 = c (0.51,0.52,0.56)) 测试值 月 test_A_1_1.txt 0.51 月 test_A_2_1.txt 0.52 0.56 test _ a3_1.txt 预期产量 我想复制第一列字符串末尾的数字,并分别放在第三列或第四列,如下所示: 新的测试值 1 test _ 1.txt 0.51 1 1 2 test _ 2.txt 0.52 2 1 3 test _ _ 3.txt 0.56 3 1 尝试 使用以下代码,我可以从字符串中提取数字: 图书馆 (stringr) As.numeric (str_extract_all (“test _ a _ 3.txt” 、 “[0-9” + “) [[1]) [1] # As.numeric (str_extract_all (“test _ a _ 3.txt” 、 “[0-9” + “) [[1]) [2] # 我想对第一列的所有值应用此 ……

共6个回答,已解决, 标签: r dataframe
如何使用条件从现有列在数据框中创建新列?

我有一列包含所有看起来像这样的数据 (需要分隔的值有一个类似 (c) 的标记): 英国 (c) 伦敦 威尔士 利物浦 美国 (c) 芝加哥 纽约 旧金山: 西雅图 澳大利亚 (c) 悉尼 珀斯 我希望它分成两列,看起来像这样: 英国伦敦 英国威尔士 英国利物浦 美国芝加哥 美国纽约 美国旧金山 美国西雅图 澳大利亚悉尼 澳大利亚珀斯 问题 2: 如果这些国家没有像 (c) 这样的模式,会怎么样? ……

共5个回答,已解决, 标签: python pandas dataframe series
如何根据最大总和分配组?

我有一个这样的数据框: Df = pd。 dataFrame ({'key': list ('aaaabbcccc'),'value': [1 、 5 、 6 、 8 、 2 、 4 、 7 、 5]}) 键值 0 一 1 1 个 5 2 a 6 3 a 8 B 2 5 b 4 6 b 7 7 b 7 8 c 1 9 c 1 10 c 1 11 c 1 12 c 5 此外,我有一个变量max_sum = 10。 我想根据中的值为每一行 (I) 分配一个组keys and (ii) the max_sum每个组不应该超过它。 我的预期结果是这样的: 键值组 0 一 1 1 个 5 个 1 2 个 6 个 2 3 个 8 个 3 4 b 2 4 B 4 4 6 b 7 5 7 b 7 6 8 c 1 7 9 c 1 7 10 c 1 7 11 c 1 7 12 c 5 7 因此,前两个值a group (1 and 5) sum up to 6 which is less than 10, so they are in the same group. If we now added also 6 ……

共5个回答,已解决, 标签: python pandas dataframe
如何在不同行之间求和并总结为一行 (R)

我有员工支付数据,数据显示为一行 = 一条支付记录。变量描述了名称、付款方式和价值。 我的最终目标是有一个数据框架,其中每个员工 = 一行,总结不同类型的支付,每个支付类型都有自己的变量。 请参见示例: Data <-data.frame (“name” = c (“John” 、 “Marie” 、 “Alex”), “付款原因” = c (“奖金” 、 “佣金” 、 “任意奖金”), “值” = c (1000 、 5000 、 2500 、 1500 、 500 、 2500)) 看起来像这样: 名称付款。原因值 1 约翰奖金 1000 2 约翰奖金 5000 3 约翰委员会 2500 4 玛丽佣金 1500 5 玛丽佣金 500 6 亚历克斯自由支配奖金 2500 这是我追求的最终结果: 目标 名称奖金佣金自由支配。奖金 1 约翰 6000 2500 0 2 玛丽 0 2000 0 3 亚历克斯 0 0 2500 我知道我需要传播数据来推动付款。将值推理到列中,但我很难弄清楚如何为每个人求和每个单独的支付类型值,并将数据按每个人分组。 提前谢谢! ……

共5个回答, 标签: r dataframe
每个变量的取消堆栈和返回值计数?

我有一个数据帧,通过多项选择题记录 19717 人对编程语言的选择。第一栏当然是被调查者的性别,而其余的是他们选择的。因此,如果我选择 Python,那么我的反应将被记录在 Python 列中,而不是 bash,反之亦然。 ID 性别 Python Bash R JavaScript C 0 男蟒蛇 nan nan JavaScript nan 1 女 nan nan R JavaScript C 2 不喜欢说 Python Bash nan 3 男南楠南楠 我想要的是一个表,它返回下每个类别的实例数Gender记录。因此,如果 5000 名男性用 Python 编码,3000 名女性用 JS 编码,那么我应该得到这个: 性别 Python Bash R JavaScript C 男 5000 1000 800 1500 1000 女 4000 500 1500 3000 800 宁愿不说 2000.。..860 我已经尝试了一些选择: Df.iloc [:,[* 范围 (0,13)]]。堆栈 ()。value_counts () 男 16138 Python 12841 SQL 6532 R ……

共5个回答,已解决, 标签: python pandas dataframe
如果列中的任何行包含某个字符串,则选择列

如果列中的任何值包含字符串,我试图获取数据框中的列列表。例如,在下面的数据框中,我想要一个字符串中包含 % 的列列表。我可以使用 for 循环和 series.str.contains 方法来实现这一点,但是对于更大的数据集来说,这似乎不是最佳的。有没有更有效的方法来做到这一点? 进口熊猫作为 pd Df = pd.DataFrame ({'a': {0: '2019-06-01',1: '2019-06-01',2: '20 'B': {0: '10',1: '20',2: '30'}, 'C': {0: '10',1: '20%',2: '30%'}, 'D': {0: '10%',1: '20%',2: '30'}, }) 数据框 B.C.D 0 2019-06-01 10 10% 1 2019-06-01 20 20% 20% 2 2019-06-01 30 30% 30 当前方法 Col_list = [] 对于 df 列中的 col: 如果 (列表 (df [col).str.contains ('%') 中 True) 为 True: Col_list.append (col) ……

共5个回答,已解决, 标签: python pandas dataframe
如何在整个数据帧的每一列中找到最后一个非零元素?

如何在数据框的每一列中找到最后出现的非零元素? 输入 一个 B 0 0 1 1 0 2 2 9 0 3 10 0 4 0 0 5 0 0 输出 一个 B 0 10 2 ……

共5个回答,已解决, 标签: python pandas dataframe
当只有一列时,如何获得名称为的数据帧的第一行?

我面临着基地 R 的意外行为。 我想用它的 colnames 作为向量来检索数据帧的第一行,这种常见的方法在大多数情况下都非常有效。 Df = data.frame (A = c (12,13),B = c (24,25)) Unlist (df [1,]) # class = numeric # A B #12 24 但是当数据帧只由一列组成时,结果被强制为未命名的向量: Df = data.frame (A = c (12,13)) Unlist (df [1,]) # class = numeric too #12 如何保留名字是第二种情况? ……

共4个回答, 标签: r dataframe vector
在 pandas 数据帧的每一行中找到第一列和最后一列非零

我看到了数据框Name and Date单元格中的重量值: 姓名 Jan17 Jun18 Dec18 Apr19 伯爵 尼克 0 1.7 3.7 0 2 2.8 3.5 2 插孔 0 0 狐狸 0 1.7 0 0 1 雷克斯 1.0 0 3.0 4.2 3 零食 0 2.8 4.4 2 Yosee 0 4.3 1 小 0.5 1.3 2.8 3.5 个月 Start and Finish应该参考下一个定义添加到数据框中: 1. Start first non zero value in row started from Jan17 column to Apr19 2. Finish first non zero value in sequence Apr19 till to Jan17 此外,如果 row 行中只有一个非零值,则Start andFinish都是一样的 要在我尝试的行中找到第一个非零元素data[col].keys, np.argmax()它按预期工作。 date_col_list = ['Jan17','Jun18','Dec18', 'Apr19'] data['Sta ……

共4个回答,已解决, 标签: python pandas dataframe argmax
将两个数据框合并到一个新的数据框中,其中唯一的项目标记为 1 或 0

我有几个数据框 Dataframe # 月 特征系数 A 0.5 B 0.3 C 0.35 D 0.2 Dataframe # 月 特征系数 A 0.7 B 0.2 Y 0.75 0.1 我想合并这个数据框,并获得以下数据框: 功能 | DF1 | DF2 1 1 B 1 1 C 1 0 D 1 0 Y 0 1 X 0 1 我知道我可以做一个outer merge但是我不知道如何从那里移动来获取我上面介绍的最终数据框。有什么想法吗? ……

共4个回答,已解决, 标签: python pandas dataframe
计算熊猫数据帧中相似值的百分比

我有一个数据帧df,两列: 脚本 (文本) 和扬声器 脚本扬声器 Aze 扬声器 1 艺术扬声器 2 Ghb 扬声器 3 Jka 扬声器 1 Tyc 扬声器 1 Avv 扬声器 2 Bhj 扬声器 1 我有以下列表:L = ['a','b','c'] 使用以下代码, Df = (df.Set _ index ('speaker') ['script'].str.findall ('|'.join (L)) 。字符串连接 ('|') 。Str.get_dummies () .Sum (级别 = 0) 打印 (df) 我得到这个数据帧df2: 扬声器 a b c 发言人 1 2 1 扬声器 2 2 0 0 演讲者 3 0 1 0 我可以在我的代码中添加哪一行来获得,对于我的数据帧的每一行df2, a percentage value of all lines spoken by speaker, in order to have the following dataframe df3: 扬声器 a b c 扬声器 1 50% 25% 25% 喇叭 2 100% 0 0 扬声器 3 0 100 ……

共4个回答, 标签: python python-3.x pandas dataframe
如何在 dataframe python 中计算特定值之前出现的次数?

我有一个数据帧如下: A B C 1 2 0 1 3 0 0 4 1 0 5 0 1 6 0 0 7 1 0 我想要零的出现次数df['B']在以下条件下: if(df['B'] ` 预期产出: A B C 输出 1 南 2 0 1 1 3 0 0 南 4 1 0 南 5 0 1 1 6 0 1 0 7 1 0 南 我不知道如何表述伯爵的部分。任何帮助都非常感谢 ` ……

共3个回答,已解决, 标签: python pandas dataframe cumsum
熊猫中的栏目怎么设置:

这是我的数据框: Dec-18-19 Feb-19-19 Apr-19 星期六 2540.0 厘米 2441.0 厘米 3832.0 厘米 4093.0 厘米 1455.0 厘米 2552.0 厘米 星期天 1313.0 厘米 1891.0 厘米 2968.0 厘米 2260.0 厘米 1454.0 厘米 1798.0 厘米 周一,1360.0 厘米 1558.0 厘米 2967.0 厘米 2156.0 厘米 1564.0 厘米 1752.0 厘米 周二,1089.0 厘米 2105.0 厘米 2476.0 厘米 1577.0 厘米 1744.0 厘米 1457.0 厘米 周三 1329.0 1658.0 2073.0 2403.0 1231.0 874.0 周四,798.0 厘米 1195.0 厘米 2183.0 厘米 1287.0 厘米 1460.0 厘米 1269.0 厘米 我试过一些熊猫行动,但我做不到。 这是我想做的: 物品 周六 2540.0 周日 1313.0 周一 1360.0 周二 1089.0 周三 1329.0 周四 798.0 周六 2441.0 周日 1891.0 周一 1 ……

共3个回答,已解决, 标签: python pandas dataframe
当签名为末尾时,将字符串格式的负数转换为数字

我的数据框的一列中有某些数字,这些数字的字符串格式为负数,如下所示: “500.00-” 我需要将该列中的每个负数转换为数字格式。我确信有一个简单的方法可以做到这一点,但是我很难找到一个特定于熊猫数据框的方法。非常感谢任何帮助。 我已经尝试了如下所示的基本 to _ numeric 函数,但是它没有正确读取它。此外,只有列中的一些数字是负数,因此我不能简单地删除所有的负数,并将列乘以 1。 Q1 [“信用” = pd.to _ numeric (Q1 [“信用”) ……

共3个回答, 标签: pandas dataframe format negative-number
使用 &ldquo;应用&rdquo; 向现有数据框添加 2 个新列

我想使用应用函数:-接受 2 列作为输入-根据函数输出两个新列。 这个 add _ multiply 函数就是一个例子。 # 具有 2 列输入和 2 个输出的功能 Def add _ multiply (a,b): 返回 (a b,a * b) # 示例数据框 Df = pd.DataFrame ({'col1': [1,2],'col2': [3,4]}) # 这不起作用 Df [['add','multipl']] = df.apply (lambda x: add _ multiply (x [' col1 '),x [' col2 ']) 理想结果: 加乘的 col1 col2 1 3 4 3 2 4 6 8 ……

共2个回答,已解决, 标签: python pandas dataframe apply
在没有循环 R 的帧上滚动行时应用自定义百分比函数

我有一个 10k 行和 150 列的数据框。我想应用滚动自定义函数使用简单的百分比排名函数计算百分比排名 (perc.rank ),其中 x 是数值的数据框,xo 是我想计算排名的值。问题是,我目前正在使用一个循环,需要大量的时间。我使用循环的原因是该函数应用于动态更改数据框的行数。有没有办法避免循环,节省一些时间?这个过程大约需要 71 秒钟,我需要为 250 个不同的数据集运行它 (总共大约 5 小时)。 我尝试过使用应用函数,但没有结果。 时间 () ptm <-proc 窗户 <-500 数据帧 (矩阵 (数据 = runif (1:1000),nrow = 10000,ncol = 150)) Df2 <-as.data.frame (矩阵 (数据 = runif (1:1000),nrow = 10000,ncol = 1)) Df [,1:150] <-runif (1:10000) Colnames (df) <-c (“value _ to _ rank” 、 “百分比 _ range1” 、 “百分比 _ range2” 、 “百分比 _ range3”) (C 中的 i (1: nr ……

共0个回答, 标签: r function dataframe apply rolling-computation