在excel中写入空行

2024-09-29 21:45:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个excel文件,看起来像这样

     Name  Location      Date Check_1  Check_2   Open  High  Low  Close
0  Orange  New York  20200501       V       V    5.5   5.85  5.45  5.7
1   Apple     Minsk  20200504       V       X    NaN   NaN   NaN   NaN
2   Steak    Dallas  20200506       V       X    NaN   NaN   NaN   NaN

“NaN”列应填充数据,该数据位于熊猫数据框中,如下所示:

   Name  Location      Date Check_2  Open  High    Low    Close 
1  Steak   Dallas  20200506      X    8.4   8.8    8.37   8.80  
0  Apple    Minsk  20200504      X    3.7   3.75   3.35   3.57  

如何附加excel文件,使其只填充NaN列,而不使用dataframe中的数据覆盖整个文件?我应该为整个excel文件创建一个新的数据框架并编写它,还是有更简单的方法?我该怎么做

编辑:所需输出:

     Name  Location      Date Check_1  Check_2   Open  High  Low  Close
0  Orange  New York  20200501       V       V    5.5   5.85  5.45  5.7
1   Apple     Minsk  20200504       V       V    3.7   3.75  3.35  3.57
2   Steak    Dallas  20200506       V       V    8.4   8.8   8.37  8.8

Tags: 文件数据nameappleclosedatechecklocation
1条回答
网友
1楼 · 发布于 2024-09-29 21:45:56

首先需要指定哪些列由^{}用于两个DataFrame中的匹配行,然后^{}用于仅替换缺少的值,df1的最后一个更改顺序由df1.columns中的列使用,对于设置原始顺序,由辅助列进行排序:

df1['count'] = np.arange(len(df1))
df11 = df1.set_index(['Name','Location','Date'])
df22 = df2.set_index(['Name','Location','Date'])

df = df22.combine_first(df11).reset_index().reindex(df1.columns, axis=1).sort_values('count')
print (df)
     Name  Location      Date Check_1 Check_2  Open  High   Low  Close  count
1  Orange  New York  20200501       V       V   5.5  5.85  5.45   5.70    0.0
0   Apple     Minsk  20200504       V       X   3.7  3.75  3.35   3.57    1.0
2   Steak    Dallas  20200506       V       X   8.4  8.80  8.37   8.80    2.0

相关问题 更多 >

    热门问题