我使用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单元格。指导?
答案 0 :(得分:1)
Ben.T提供了以下代码来回答我的问题。
photo_data['Date'].fillna(historical["Date"])