gpt4 book ai didi

python - pandas 在 to_latex 时用任意数字替换 NAN

转载 作者:太空狗 更新时间:2023-10-29 21:10:45 25 4
gpt4 key购买 nike

我有一个大型多索引多列数据框df,我没有在这里展示。我像这样生成一片索引:

subDf = df.sort_index(level=0).loc[:'e']

然后该切片在索引的第二层包含 NaN:

>>> subDf.iloc[0:1]
change
robustness value
baseline NaN -14.5

to_csv() 生成的 csv 似乎是正确的:

>>> subDf.iloc[0:1].to_csv()
Out[15]: 'robustness,value,change\nbaseline,,-14.5\n'

同样,to_html() 的功能与预期的一样。但是,当我尝试获取 latex_output 时,NaN 消失并出现 50.00:

>>> subDf.iloc[0:1].to_latex()
Out[14]: u'\\begin{tabular}{llr}\n\\toprule\n & & change \\\\\nrobustness & value & \\\\\n\\midrule\nbaseline & 50.00 & -14.5 \\\\\n\\bottomrule\n\\end{tabular}\n'

50.00不是一个完全任意的数字,它是原始数据框中多索引第二层的最后一个值:

>>> df.index
Out[18]:
MultiIndex(levels=[[u'a', u'b', u'c', u'd', u'e', u'baseline', u'f'], [0.01, 0.04, 0.25, 0.75, 0.86, 0.99, 1.0, 2.0, 4.0, 10.0, 50.0]],
labels=[[5, 6, 6, 2, 2, 1, 3, 3, 3, 4, 4, 0, 0], [-1, 0, 1, 2, 3, 9, 6, 7, 8, 4, 5, 9, 10]],
names=[u'robustness', u'value'])

出现两个问题:

  • 为什么会发生这种情况?
  • 如果确实是短期内我无法影响的意外行为,我该如何规避这一点并强制 to_latex() 打印出 NaN

最佳答案

这可能为时已晚,但为了后代,但我认为这些方法中的任何一种都应该有效:

  1. NaN列转换为字符串;这将在 LaTeX 中为您提供 nan

  2. 如果您更愿意使用 NaN 而不是 nan,您可以执行 1. 然后替换,或者您可以只执行 df.fillna ('NaN')

显然,这些方法会以不利于进一步分析的方式修改您的数据框,但我认为这是一个简单的解决方法;只需先复制您的数据框即可。

(我在只有一个单级索引的数据框上测试了这些方法,但我无法想象它对于多级索引会有什么不同)

关于python - pandas 在 to_latex 时用任意数字替换 NAN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39569791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com