根据行数条件选择两个DataFrame中更长的导出为CSV的实现方法
问题原因
你写的代码存在两个核心错误:
- 你初始化的
x是空DataFrame,全程没有给它赋值就直接调用apply方法,最终得到的自然是空结果 apply是用来对DataFrame的行/列元素逐个应用处理函数的方法,你当前的需求只是选中行数更长的DataFrame,完全不需要用到apply,属于方法误用
修正方案
你写的长度判断逻辑本身是正确的,只需要直接获取判断后的返回值赋值给x,再调用导出csv的方法即可:
import pandas as pd # 此处保留你自己的foo、bar DataFrame定义代码 def get_longer_df(df1, df2): # 建议改成传参形式,避免依赖全局变量,兼容性更好 if len(df1) > len(df2): return df1 else: return df2 x = get_longer_df(foo, bar) # 导出时加index=False可以避免生成额外的索引列,不需要可以去掉该参数 x.to_csv('x.csv', index=False)
如果两个DataFrame行数相等时你希望优先返回foo,把判断条件改成len(df1) >= len(df2)即可。
内容的提问来源于stack exchange,提问作者Colin Sorensen
相关产品推荐
相关产品推荐

