我的表格中有数据:
President Years Executive Orders
George Washington 1789-1797 8
John Adams 1797-1801 1
Thomas Jefferson 1801-1809 4
...
这些年是字符串格式,我想创建一个新的数据框,每年对其进行重新采样,如下所示,这样我就可以创建多年来的执行顺序图(我会插入,因为数据没有'例如,在1801-1809之间提供数据):
Year Executive Orders
1789 8
1790 0
1791 0
...
基本上我想在第一个df的第二个df中查找日期并查看订单数量。有什么想法吗?
由于
答案 0 :(得分:0)
import pandas as pd
import numpy as np
from io import StringIO
data = '''\
President Years Executive Orders
George Washington 1789-1797 8
John Adams 1797-1801 1
Thomas Jefferson 1801-1809 4
'''
df = pd.read_csv(StringIO(data), sep=r'\s+')
df[['From', 'To']] = df['Executive'].str.split('-', expand=True)
df['From'] = pd.to_datetime(df['From'])
df['To'] = pd.to_datetime(df['To'])
df_orders = df[['Orders', 'From']].set_index('From')
这导致以下DataFrame
Orders
From
1789-01-01 8
1797-01-01 1
1801-01-01 4
由于索引列是日期列resample
,因此可以根据需要重新采样数据。有关如何重新采样数据的信息,请参阅docs。
df_orders_resampled = df_orders.resample('AS').sum().fillna(0)
Orders
From
1789-01-01 8.0
1790-01-01 0.0
1791-01-01 0.0
1792-01-01 0.0
1793-01-01 0.0
1794-01-01 0.0
1795-01-01 0.0
1796-01-01 0.0
1797-01-01 1.0
1798-01-01 0.0
1799-01-01 0.0
1800-01-01 0.0
1801-01-01 4.0
df_orders_resampled.plot()