可以使用pandas库来对数据框按月份进行排序,并找到每个月份中每列的第一个非零值。下面是一个示例代码:
import pandas as pd
# 创建一个示例数据框
data = {'日期': ['2020-01-01', '2020-02-01', '2020-03-01', '2020-01-02', '2020-02-02', '2020-03-02'],
'列1': [0, 1, 2, 3, 4, 5],
'列2': [6, 7, 0, 0, 9, 10],
'列3': [11, 0, 0, 14, 15, 0]}
df = pd.DataFrame(data)
# 将日期列转换为日期类型
df['日期'] = pd.to_datetime(df['日期'])
# 按月份对数据框进行排序
df_sorted = df.sort_values('日期')
# 找到每个月份中每列的第一个非零值
df_first_nonzero = df_sorted.groupby(df_sorted['日期'].dt.month).first()
print(df_first_nonzero)
输出结果为:
日期 列1 列2 列3
日期
1 2020-01-01 0 6 11
2 2020-02-01 1 7 0
3 2020-03-01 2 0 0
这段代码首先将日期列转换为日期类型,然后使用sort_values
函数按日期对数据框进行排序。接着,使用groupby
函数和first
函数找到每个月份中每列的第一个非零值。最后,将结果打印出来。
下一篇:按月份对数组进行排序