我正在尝试应用一个函数,如果该单元格以GNCR而不是实际数字开头,则该函数将删除名为“ gncr”的行的前4个字符。该功能确实有效,但似乎它没有返回,并且我的数据帧保持不变。
我尝试了很多事情,但是没有一个起作用
def extract_gncr(gncr):
if gncr[0] == 'G':
gncr = gncr[4:]
elif not gncr.isdigit():
gncr = ''
print(gncr) #This shows me the fonction actually works
return(gncr)
def merge_data(primary_df):
foreign_df = pd.read_exce(r"somefile.xlsx")
#extract the number from "GNCRxxxx"
foreign['GNCR'] = foreign_df['GNCR'].apply(extract_gncr)
primary['GNCR'] = primary_df['GNCR'].apply(extract_gncr)
#foreign and primary remains unchanged
[...]
答案 0 :(得分:1)
问题可能不是apply函数。它可能是范围可变的问题。尝试在merge_data中打印外部和主要内容。
答案 1 :(得分:0)
很抱歉给您带来不便, 此功能确实有效,问题出在其他地方,我已将其修复。 谢谢答案!