Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas 如何重新采样(向上采样)数据帧?_Pandas_Dataframe - Fatal编程技术网

Pandas 如何重新采样(向上采样)数据帧?

Pandas 如何重新采样(向上采样)数据帧?,pandas,dataframe,Pandas,Dataframe,我有一个小熊猫数据框,我想重新取样,我希望你能帮助我: 我不能给你看,因为它是保密的,但我可以给你描述一个更简单的版本 它有4列: -日期YYYY-MM-DD格式 -国家 -数量 -频率 下面是我想做的: 根据行的不同,频率为每年或每月 如果是每月一次,那么就不需要做什么了 但是如果是每年一次,我想把它改为每月一次,插入11行,这样在12行中,现有的一行和考虑的11行新的行中,国家将保持不变,所以相同的国家名称重复了12次,金额也将是amount/12重复了12次,你明白了吗,每行的日期将增加1

我有一个小熊猫数据框,我想重新取样,我希望你能帮助我:

我不能给你看,因为它是保密的,但我可以给你描述一个更简单的版本

它有4列:

-日期YYYY-MM-DD格式

-国家

-数量

-频率

下面是我想做的:

根据行的不同,频率为每年或每月 如果是每月一次,那么就不需要做什么了

但是如果是每年一次,我想把它改为每月一次,插入11行,这样在12行中,现有的一行和考虑的11行新的行中,国家将保持不变,所以相同的国家名称重复了12次,金额也将是amount/12重复了12次,你明白了吗,每行的日期将增加1个月

我真希望有人能帮我

提前感谢,

亚历克斯

编辑:

我已经使用将日期列更改为索引

df.set_indexDate,inplace=True


然而,我真的不知道如何使用重采样函数来实现我的目的…

首先确保您的数据帧具有DateTimeIndex类型的索引

然后使用重采样功能对数据帧的较高频率进行上采样或较低频率进行下采样。然后应用聚合器(如sum)聚合新采样频率的值


请参阅此处的重采样文档:

OK,现在您已将日期列作为索引,使用df.index=pd.to_datetimedf.index将其转换为DateTimeIndex,然后使用重采样将采样调整为给定的间隔。是的,但是如何/在何处写入我上面提到的所有条件?因为需要根据另一列的值重采样,最好根据频率掩码创建一个新的数据帧,必要时重新采样。然后,一旦对结果数组进行了适当的采样,就将它们连接起来。我完全同意你的观点,但这正是我不知道该怎么做的!!有关掩蔽的信息,我将向您指出以下问题:。要从掩码连接生成的数据帧,请查看concat文档。如果您仍然有问题,请为此打开一个新问题。如果我已经解决了这个特殊的重采样问题,请接受这个答案。