我想插入一个名为新列total在final_df其中是的累加值value中df,如果在时间之间发生时final_df。如果它出现在start和endin之间,它就会对这些值求和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) 我正在尝试删除列中包含某些子字符串的行。我想删除包含子字符串“年”、“星期一”、“/”的所有值
我的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) 我有一个看起来像这样的数据框:
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)