我有一个看起来像这样的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
如何附加仅NaN列被填充且整个文件不会仅被数据框中的数据覆盖的excel文件?我应该为整个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
参考方案
首先需要指定DataFrame
将哪些列用于两个DataFrame.set_index
中的匹配行,然后将DataFrame.combine_first
用于仅替换丢失的值,df1
的最后更改顺序由df1.columns
的列和set原始订单用于按帮助者列排序:
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
Python Pandas:按分组分组,平均? - python我有一个像这样的数据框:cluster org time 1 a 8 1 a 6 2 h 34 1 c 23 2 d 74 3 w 6 我想计算每个集群每个组织的平均时间。预期结果:cluster mean(time) 1 15 ((8+6)/2+23)/2 2 54 (74+34)/2 3 6 我不知道如何在熊猫中做到这一点,有人可以帮忙吗? 参考方案 如…
python :安装 python 后,如何导入 Pandas - python我已经安装了 python 。现在,当我尝试跑步时import pandas as pd 我收到以下错误Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> import pandasFile ImportError: …
Python Pandas:在多列上建立布尔索引 - python尽管至少有关于如何在Python的pandas库中为DataFrame编制索引的two good教程,但我仍然无法在一个以上的列上找到一种优雅的SELECT编码方式。>>> d = pd.DataFrame({'x':[1, 2, 3, 4, 5], 'y':[4, 5, 6, 7, 8]}) >…
Python Pandas:选择索引范围 - pythondatas = [['RAC1','CD0287',1.52], ['RAC1','CD0695',2.08], ['RAC1','ADN103-1',2.01], ['RAC3','CD0258',…
Python Pandas检查数据框是否不为空 - python我有一个if语句,它在其中检查数据框是否为空。我的操作方式如下:if dataframe.empty: pass else: #do something 但实际上我需要:if dataframe is not empty: #do something 我的问题是-是否有一种.not_empty()方法可以实现这一目标?我还想问一下第二个版本在性能方面是否更好…