我是python的新手,正在尝试进行一些数据操作,我将在下面进行解释
这是我正在使用的CSV文件
我已经加载到一个数据帧(dfu l)中,如下所示
Line_items Format
0 Connectivity : Master NaN
1 Export Type {"hierarchyEntityLongId":101000000171,"entityF...
2 Submit? {"dataType":"BOOLEAN"}
3 Approval Status {"hierarchyEntityLongId":101000000073,"entityF...
4 --- AUX --- {"minimumSignificantDigits":4,"decimalPlaces":...
5 L1 Export Level {"hierarchyEntityLongId":101000000093,"entityF...
6 L2 Customer {"hierarchyEntityLongId":101000000011,"entityF...
7 L2 L3 Customer {"hierarchyEntityLongId":101000000101,"entityF...
8 Planning Customer {"hierarchyEntityLongId":101000000021,"entityF...
9 L2 Export Code {"textType":"GENERAL","dataType":"TEXT"}
10 Display Name {"textType":"GENERAL","dataType":"TEXT"}
11 Short Name {"textType":"GENERAL","dataType":"TEXT"}
12 SAP Daily Purchases NaN
13 Quantity Carton {"minimumSignificantDigits":4,"decimalPlaces":...
14 Custom Group 1 {"hierarchyEntityLongId":101000000014,"entityF...
我添加了一个列(IsModule),它检查Format col=NAN与否。如果是则Ismodule=True,否则使用此代码为False
df_l['IsModule'] = pd.isna(df_l["Format"])
df_l
Line_items IsModule
0 Connectivity : Master True
1 Export Type False
2 Submit? False
3 Approval Status False
4 --- AUX --- False
5 L1 Export Level False
6 L2 Customer False
7 L2 L3 Customer False
8 Planning Customer False
9 L2 Export Code False
10 Display Name False
11 Short Name False
12 SAP Daily Purchases True
13 Quantity Carton False
14 Custom Group 1 False
我添加了另一列,让我们称之为New,如果IsModule=True,那么col New=Line中的行的值,col New=New-1中的行的值,即col New中的前一行值
我使用了下面的代码
df_l.loc[df_l['IsModule']==0,'New'] = df_l.loc[1,'New']
for i in range(1,len(df_l)):
if df_l.loc[i,'IsModule'] == 0 :
df_l.loc[i,'Module_name']=(df_l.loc[i-1,'Module_name'])
else :
df_l.loc[i,'Module_name']=(df_l.loc[i,'Line_items'])
df_l[['Line_items','IsModule','Module_name']].head(15)
df_l.head(15)
Line_items IsModule New
0 Connectivity : Master True Connectivity : Master
1 Export Type False Connectivity : Master
2 Submit? False Connectivity : Master
3 Approval Status False Connectivity : Master
4 --- AUX --- False Connectivity : Master
5 L1 Export Level False Connectivity : Master
6 L2 Customer False Connectivity : Master
7 L2 L3 Customer False Connectivity : Master
8 Planning Customer False Connectivity : Master
9 L2 Export Code False Connectivity : Master
10 Display Name False Connectivity : Master
11 Short Name False Connectivity : Master
12 SAP Daily Purchases True SAP Daily Purchases
13 Quantity Carton False SAP Daily Purchases
14 Custom Group 1 False SAP Daily Purchases
我得到了期望的输出,但有没有更好的/替代的方法?似乎只有几行额外的代码
我只想学习,变得更好
谢谢
你想要
where
和ffill()
输出:
相关问题 更多 >
编程相关推荐