如何使用python在循环中处理脚本
我想在for循环下执行脚本,最后我想使用python将back和concat追加到dataframe。循环中的脚本正在执行,但最后它给出了错误 当我使用以下脚本时,会出现错误:如何使用python在循环中处理脚本,python,pandas,Python,Pandas,我想在for循环下执行脚本,最后我想使用python将back和concat追加到dataframe。循环中的脚本正在执行,但最后它给出了错误 当我使用以下脚本时,会出现错误: df = df.apply(test, axis=1) Error: AttributeError: '2021-01-19' is not a valid function for 'Series' object 使用另一行会产生错误: df = df.apply(row, inplace=True) TypeE
df = df.apply(test, axis=1)
Error: AttributeError: '2021-01-19' is not a valid function for 'Series' object
使用另一行会产生错误:
df = df.apply(row, inplace=True)
TypeError: 'Series' object is not callable
完整代码:
df = pd.read_excel(open(r'data.xlsx', 'rb'), sheet_name='sheet1')
df1 = df.loc[df['flag'] != 'Not feasible']
df = df.loc[df['flag'] == 'Not feasible'].copy()
for index, file in df..iterrows():
# Run your cleaning codes
try:
file['Joining_Date'][index] = pd.to_datetime(file['Joining_Date'], errors='coerce')
file['Joining_Date'][index] = file['Joining_Date'].dt.strftime('%Y-%m-%d')
except ValueError:
file['status'] = ValueError
try:
file['age'][index] = file['age'].replace('[^\d.]', '', regex=True).astype(float)
except ValueError:
file['status'] = ValueError
try:
file[['col4','col5']][index] = file[['col4','col5']].apply(lambda x: x.astype(str).str.replace('\W',''))
except ValueError:
file['status'] = ValueError
try:
file['Contact'][index] = file['Contact'].replace('[^\d.]', '', regex=True).astype(float)
except ValueError:
file['status'] = ValueError
file['flag'][index] = "feasible"
##Appending the values to dataframe and concat with the Non Executed data
df = df.apply(file, axis=1)
df = pd.concat([df, df1]).sort_index()
请建议。如何在循环下执行数据,并在回写Excel之前与未处理的数据合并。而不是使用
file['Joining_Date'][index] = ...
或
您必须使用索引
变量逐个索引更改数据帧,因为当前您不是在更改数据帧,而是在更改临时文件
变量
使用
因此,您可以更改数据帧,而不是文件['Joining_Date'][index]=…
df['Joining_Date'].iloc[index] = pd.to_datetime(file['Joining_Date'], errors='coerce')
之后,只需删除apply()
,并保留最后一行
我建议您阅读熊猫版。为什么在
df..iterrows中有两个。
?df=df.apply(file,axis=1)
的任务是什么<代码>文件需要是一个函数(请参阅)。请错误地忽略该函数。已经编写。@Manz您仍然可以编辑它。@ConfusedLearner-我如何在函数内部使用。
df['column_name'].iloc[index] = ...
df['Joining_Date'].iloc[index] = pd.to_datetime(file['Joining_Date'], errors='coerce')