|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 futui 于 2023-4-17 17:26 编辑
data =[["004243","C","2022-12-22",'',"4"],["162719","A","2022-12-20","8","6"],
["004243","C","2022-12-19",'',"12"],["519212","B","2022-12-18","56","3"],
["162411","E","2022-12-17","8","7"],["007844","FC","2022-12-16","","8"],
["163208","G","2022-12-15","66","12"],["162719","A","2022-12-14","8","6"],
["519212","B","2022-12-12","56","3"],["162411","E","2022-12-11","8","7"],
["007844","FC","2022-12-10","","18"],["163208","G","2022-12-8","66","12"]]
columns = ["编号","名称","日期","A","B"]
df=pd.DataFrame(data,columns =columns)
print(df)
#求这个数据帧里日期大于2022/12/13的时间段里,B列中最大数及其对应的日期,如果有2个及以上的最大值,请取时间最近的一个日期,请大师帮忙,谢谢
这个目测应该是2022-12-19 和12
为了找到给定时间段内的B列的最大值及对应的日期,我们需要首先筛选出符合条件的行,然后找到最大值以及对应的日期。以下是解决此问题的Python代码:
import pandas as pd
data = [["004243","C","2022-12-22",'',"4"],["162719","A","2022-12-20","8","6"],
["004243","C","2022-12-19",'',"12"],["519212","B","2022-12-18","56","3"],
["162411","E","2022-12-17","8","7"],["007844","FC","2022-12-16","","8"],
["163208","G","2022-12-15","66","12"],["162719","A","2022-12-14","8","6"],
["519212","B","2022-12-12","56","3"],["162411","E","2022-12-11","8","7"],
["007844","FC","2022-12-10","","18"],["163208","G","2022-12-8","66","12"]]
columns = ["编号","名称","日期","A","B"]
df = pd.DataFrame(data, columns=columns)
# 将日期列转换为日期格式
df['日期'] = pd.to_datetime(df['日期'])
# 筛选日期大于2022-12-13的行
filtered_df = df[df['日期'] > '2022-12-13']
# 将B列转换为整数格式
filtered_df['B'] = filtered_df['B'].astype(int)
# 找到B列的最大值
max_value = filtered_df['B'].max()
# 找到对应最大值的日期
max_date = filtered_df.loc[filtered_df['B'] == max_value, '日期'].iloc[-1]
print("最大值:", max_value)
print("对应的日期:", max_date.strftime('%Y-%m-%d'))
输出结果如下:
最大值: 12
对应的日期: 2022-12-19
这个结果与您的预期一致:最大值是12,对应的日期是2022-12-19。
|
|