Pandas .replace或.fillna填补NAN值补救措施

时间:2018-05-30 16:24:26

标签: python excel pandas dataframe

我使用pandas excel读取操作和合并操作将同一个excel文档中的两个电子表格合并为一个数据帧。合并的数据框包含NaN值。我想用来自excel文档中的一个原始电子表格的数据替换/填充NaN值。这可能吗?

数据详情:历史表

照片ID |类型|日期|位置
 1 jpg 5/30/18 USA
 2 jpg 5/30/18美国
 3 tiff 5/30/18 CAN
 4 tiff 5/30/18 AUS
 5 img 5/30/18 AUS

当前表:
照片ID |类型|采取|位置
 1 jpg 5/30/18 USA
 2 jpg 5/30/18美国
 3 tiff 5/30/18 CAN
 5 img 5/30/18 AUS

当前代码:

import pandas as pd
from pandas import ExcelWriter
from pandas import ExcelFile

file_location = "H:\\Travel\\AC_Images.xlsx"

test_xls = pd.ExcelFile(file_location)
historical = test_xls.parse("Historical Photos",skiprows=1)
current = test.xls.parse("Current Photos",skiprows=2)

photo_data = historical.merge(current, left_on = "Photo ID", right_on = 
"photonum", how = "left")
photo_data = photo_data[photo_data['Photo ID'].notnull()]

返回示例:

照片ID |类型|日期|位置
 1 jpg 5/30/18 USA
 2 jpg 5/30/18美国
 3 tiff 5/30/18 CAN
 4 NaN NaN NaN NaN
 5 img 5/30/18 AUS

同样,合并的输出包含NaN值。我想使用AC_Images excel文档中的历史照片表中的日期值填充Date NaN单元格。我试过这个:

photo_data.replace('NaN', "Historical Photos"["location"])

它返回错误"字符串标记必须是整数。"我不确定如何从该列中提取数据并将其导入合并数据帧中的NaN单元格。指导?

1 个答案:

答案 0 :(得分:1)

Ben.T提供了以下代码来回答我的问题。

photo_data['Date'].fillna(historical["Date"])