熊猫数据帧索引和位置



我对Pandas很陌生,正在做一个将一些Pandas代码转换为pyspark的任务。

谁能告诉我下面的代码实际上在做什么?

有一个名为DFF的Pandas Dataframe,它看起来如下:

DB
SalesOrder SOItem SLNo    
4500041    10     1     PP
4501034    20     1     ZH

这是DFF的索引详细信息

DB
SalesOrder SOItem SLNo    
4500041    10     1     PP
4501034    20     1     ZH
MultiIndex([('4500041', '10', 1),
('4501034', '20', 1)],
names=['SalesOrder', 'SOItem', 'SLNo'])

还有一个名为SDD的Pandas Dataframe,它看起来如下:

SalesOrder SOItem  SLNo    DlvDate  ...  DB  CommittQty ProdOrder CommitQty
0    4500041     10     1 2017-02-16  ...  PP       6,000                 6.0
1    4501034     20     1 2017-02-13  ...  ZH       1,000                 1.0
2    4501034     10     2 2017-02-16  ...  ZH        5,00                 5.0
3    4501464     20     2 2017-02-13  ...  KK       9,000   8500065       9.0
[4 rows x 11 columns]

我需要帮助的代码部分如下。

SDD.loc[DFF.index, 'RDD'] = SDD.loc[DFF.index, 'DlvDate'] 

有人能解释一下我在上面的代码行正在做什么。我在Pyspark中得到了这两个数据框,但无法理解如何处理上面提到的Pandas代码。

我打印了每一层来调试,但是没有得到太多的理解。

这是用下面的代码执行的下面的操作。

SDD.loc (DFF。index, 'RDD'] = SDD.loc[DFF。指数' DlvDate ']

基本上在上面这行中正在进行以下操作:

DFF Dataframe的所有索引列和SDD Dataframe的所有索引列被连接。在SDD数据框架上创建一个名为"RDD"的新列,并为DFF数据框架的所有匹配索引值SDD创建列。在RDD列中设置DlvDate列值,对于不匹配的值设置null。

对应的pyspark左连接SDD为左数据框的数据框,然后在"需要检查DFF数据帧的任何一个join col是否为空,然后将SDD数据帧DlvDate设置为空。

最新更新