小编tho*_*hor的帖子

如果在某些时间/值之间,熊猫累积总和

我想插入一个名为新列totalfinal_df其中是的累加值valuedf,如果在时间之间发生时final_df。如果它出现在startendin之间,它就会对这些值求和final_df。因此,例如在 01:30 到 02:00 的时间范围内final_df- 索引 0 和 1 都df发生在此时间范围之间,因此总数为 15 (10+5)。

我有两个熊猫数据框:

df

import pandas as pd

d = {'start_time': ['01:00','00:00','00:30','02:00'], 
     'end_time': ['02:00','03:00','01:30','02:30'], 
     'value': ['10','5','20','5']}

df = pd.DataFrame(data=d)
Run Code Online (Sandbox Code Playgroud)

final_df

final_df = {'start_time': ['00:00, 00:30, 01:00, 01:30, 02:00, 02:30'],
            'end_time': ['00:30, 01:00, 01:30, 02:00, 02:30, 03:00']}

final_df = pd.DataFrame(data=final_d)
Run Code Online (Sandbox Code Playgroud)

输出我想要 final_df

start_time  end_time total
00:00       00:30    5
00:30       01:00    25 …
Run Code Online (Sandbox Code Playgroud)

python loops cumulative-sum pandas

5
推荐指数
1
解决办法
260
查看次数

删除 Pandas 中包含某些字符串列表的行

我正在尝试删除列中包含某些子字符串的行。我想删除包含子字符串“年”、“星期一”、“/”的所有值

我的dataframe样子:

col1
24/05/2020
May Year 2020
Monday
May 2020
Run Code Online (Sandbox Code Playgroud)

我尝试过的代码:

drop_values = ['Monday','Year', '/']
df = df[~df['Col1'].str.contains(drop_values)]
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

TypeError: unhashable type: 'list'
Run Code Online (Sandbox Code Playgroud)

python pandas

4
推荐指数
1
解决办法
6961
查看次数

熊猫基于另一列替换值条件

我有一个看起来像这样的数据框:

col1 col2
Yes  23123
No   23423423
Yes  34234
No   13213
Run Code Online (Sandbox Code Playgroud)

我想替换col2中的值,以便如果col1中的“是”,则返回空白,如果“否”,则返回初始值

我想看这个:

 col1 col2
 Yes  
 No   23423423
 Yes  
 No   13213
Run Code Online (Sandbox Code Playgroud)

我已经尝试过了,但是'No'返回None:

   def map_value(x): 
      if x in ['Yes']:
         return ''
      else:
         return None

   df['col2'] = df['col1'].apply(map_value)
Run Code Online (Sandbox Code Playgroud)

if-statement pandas

1
推荐指数
1
解决办法
3248
查看次数

标签 统计

pandas ×3

python ×2

cumulative-sum ×1

if-statement ×1

loops ×1