我有两个dataframes(df1和df2,如下所示),它们的列在顺序和计数上都不同。我需要将这两个数据页追加到一个Excel文件中,其中的列顺序必须按照下面col_list
中指定的顺序。
df1为:
durable_medical_equipment pcp specialist diagnostic imaging generic formulary_brand non_preferred_generic emergency_room inpatient_facility medical_deductible_single medical_deductible_family maximum_out_of_pocket_limit_single maximum_out_of_pocket_limit_family plan_name pdf_name
0 False False False False False False False False False False False False False False ABCBCBC adjnajdn.pdf
pcp specialist generic formulary_brand emergency_room urgent_care inpatient_facility durable_medical_equipment medical_deductible_single medical_deductible_family maximum_out_of_pocket_limit_single maximum_out_of_pocket_limit_family plan_name pdf_name
0 True True False False True True True True True True True True ABCBCBC adjnajdn.pdf
Col_list = ['durable_medical_equipment', 'pcp', 'specialist', 'diagnostic',
'imaging', 'generic', 'formulary_brand', 'non_preferred_generic',
'emergency_room', 'inpatient_facility', 'medical_deductible_single',
'medical_deductible_family', 'maximum_out_of_pocket_limit_single', 'maximum_out_of_pocket_limit_family',
'urgent_care', 'plan_name', 'pdf_name']
我正在尝试使用concat()
根据Col_list重新排序我的dataframe。对于dataframe中不存在的列值,该值可以是NaN。
result = pd.concat([df, pd.DataFrame(columns=list(Col_list))])
这不能正常工作。如何实现此重新排序?
我尝试了以下方法:
result = pd.concat([df_repo, pd.DataFrame(columns=list(Col_list))], sort=False, ignore_index=True)
print(result.to_string())
durable_medical_equipment pcp specialist diagnostic imaging generic formulary_brand non_preferred_generic emergency_room inpatient_facility medical_deductible_single medical_deductible_family maximum_out_of_pocket_limit_single maximum_out_of_pocket_limit_family plan_name pdf_name urgent_care
0 False False False False False False False False False False False False False False ABCBCBC adjnajdn.pdf NaN
pcp specialist generic formulary_brand emergency_room urgent_care inpatient_facility durable_medical_equipment medical_deductible_single medical_deductible_family maximum_out_of_pocket_limit_single maximum_out_of_pocket_limit_family plan_name pdf_name diagnostic imaging non_preferred_generic
0 True True False False True True True True True True True True ABCBCBC adjnajdn.pdf NaN NaN NaN
如果需要,请使用列表adddataframe.reindex
中的按值更改顺序,并传递到concat
:
df = pd.concat([df1.reindex(Col_list, axis=1),
df2.reindex(Col_list, axis=1)], sort=False, ignore_index=True)
print (df)
durable_medical_equipment pcp specialist diagnostic imaging generic \
0 False False False 0.0 0.0 False
1 True True True NaN NaN False
formulary_brand non_preferred_generic emergency_room inpatient_facility \
0 False 0.0 False False
1 False NaN True True
medical_deductible_single medical_deductible_family \
0 False False
1 True True
maximum_out_of_pocket_limit_single maximum_out_of_pocket_limit_family \
0 False False
1 True True
urgent_care plan_name pdf_name
0 NaN ABCBCBC adjnajdn.pdf
1 1.0 ABCBCBC adjnajdn.pdf
问题内容: 我有2个数据框: restaurant_ids_dataframe 和 restaurant_review_frame 我想使用熊猫中的DataFrame.join()命令将这两个DataFrame加入一个单一的数据框中。 我尝试了以下代码行: 但是,当我尝试这样做时,出现以下错误: 我对熊猫很陌生,不知道就执行join语句而言我在做什么错。 任何帮助将非常感激。 问题答案: 您可以使
我有两个火花数据帧。我想基于第二个更新第一个。 数据流1 df2 我想更新第一个数据帧(df1),如下所示 我不知道如何加入嵌套结构中的数据
问题内容: 我正在使用下面的代码合并两个csv(数据帧): 我有以下CSV文件 文件1: 文件2: 合并后 如果您注意到student_id的开头附加了0,应该将其视为文本,但是在合并并使用函数后,它将其转换为数字并删除了前导0。 即使在to_csv之后,如何将列保持为“文本”? 我认为它的to_csv函数可以再次保存为数字添加了dtype = {‘student_id’:str}。 问题答案:
我有两个数据帧需要以我正在努力的特定方式连接。 数据帧 1: 数据框2: 期望结果: 基本上-它应该在上连接df1和df2,但是如果df2中不存在,那么生成的应该是df1中的。 我尝试了 ),但这显然在列中留下了 以供 ,因为它在 df2 中没有匹配的域。对于此特定情况,我如何将它们添加到列中?
问题内容: 给定两个排序数组,如下所示: 我希望输出为: 要么: 我知道我可以执行以下操作: 我只是想知道是否有一种更快的方法,因为我要处理的数组具有数百万个元素。 任何想法都欢迎。谢谢 问题答案: 由于您使用numpy,因此我怀疑bisec根本不会对您有所帮助。因此,我建议您做两件事: 千万 不能 使用,使用方法,而不是这种种取代阵列,避免了复制。 必须使用没有到位的。因此,不要手动使用逻辑。I
问题内容: 我有一个客户端,一个服务器和一个数据库。客户端通过EJB远程接口与服务器通信。作为服务器-我使用Wildfly 8.2.0。作为数据库- 我使用MySQL。服务器通过JPA /休眠与MySQL通信。当我关闭MySQL服务器时,Wildfly当然会引发异常。但是,当我再次打开MySQL时- Wildfly仍然会抛出相同的错误。我必须关闭Wildfly,然后重新将Wildfly重新连接到数