我有一个数据帧,我正试图附加到另一个数据帧。我用.append()尝试了各种方法,但没有成功的方法。当我从iTErrors打印数据时。我提供了两种可能的方法来解决下面的问题,一种创建错误,另一种不使用任何东西填充数据帧
我尝试创建的工作流是基于包含客户订单交易历史的文件创建一个数据框架。我只想为每个订单创建一条记录,我将添加其他逻辑,根据历史记录中的更新更新订单详细信息。在脚本结束时,它将拥有一条记录,记录所有订单以及在遍历历史文件后这些订单的结束状态
类om():
“”“管理订单的当前状态”“”
定义初始化(self,dataF,desc='NONE'):
self.df=pd.DataFrame
self.data=dataF
打印类型(dataF)
self.oD=self.df(数据=None,列=desc)
def添加_数据(自身、df):
对于i,self.data.iterrows()中的行:
打印“行”+str(行)
打印类型(行)
df.append(self.data[i],ignore_index=True)”“此行创建错误”
append(row,ignore_index=True)““”此行不向数据帧追加任何内容。”“”
测试=订单管理器(正文、标题)
test.add_数据(test.orderData)
使用.loc放大当前df。请参见下面的示例
将熊猫作为pd导入
将numpy作为np导入
日期=pd.日期范围('2015-01-01',期间=200,频率=D')
df1=pd.DataFrame(np.random.randn(100,3),columns='A B C'.split(),index=date\u rng[:100])
Output[410]:
A、B、C
2015-01-01 0.2799 0.4416 -0.7474
2015-01-02 -0.4983 0.1490 -0.2599
2015-01-03 0.4101 1.2622 -1.8081
2015-01-04 1.1976 -0.7410 0.4221
2015-01-05 1.3311 1.0399 2.2701
... ... ... ...
2015-04-06 -0.0432 0.6131 -0.0216
2015-04-07 0.4224 -1.1565 2.2285
2015-04-08 0.0663 1.2994 2.0322
2015-04-09 0.1958 -0.4412 0.3924
2015-04-10 0.1622 1.7603 1.4525
[100行x 3列]
df2=pd.DataFrame(np.random.randn(100,3),columns='abc'.split(),index=date\u rng[100:]
Out[411]:
A、B、C
2015-04-11 1.1196 -1.9627 0.6615
2015-04-12 -0.0098 1.7655 0.0447
2015-04-13 -1.7318 -2.0296 0.8384
2015-04-14 -1.5472 -1.7220 -0.3166
2015-04-15 2.5058 0.6487 1.0994
... ... ... ...
2015-07-15 -1.4803 2.1703 -1.9391
2015-07-16 -1.7595 -1.7647 -1.0622
2015-07-17 1.7900 0.2280 -1.8797
2015-07-18 0.7909 -0.4999 0.3848
2015-07-19 1.2243 0.4681 -1.2323
[100行x 3列]
#要将一行从df2移动到df1,请使用.loc放大df1
#这比pd.concat和pd.append更有效
df1.loc[df2.index[0]]=df2.iloc[0]
Out[413]:
A、B、C
2015-01-01 0.2799 0.4416 -0.7474
2015-01-02 -0.4983 0.1490 -0.2599
2015-01-03 0.4101 1.2622 -1.8081
2015-01-04 1.1976 -0.7410 0.4221
2015-01-05 1.3311 1.0399 2.2701
... ... ... ...
2015-04-07 0.4224 -1.1565 2.2285
2015-04-08 0.0663 1.2994 2.0322
2015-04-09 0.1958 -0.4412 0.3924
2015-04-10 0.1622 1.7603 1.4525
2015-04-11 1.1196 -1.9627 0.6615
[101行x 3列]