python - 在 pandas 中为 Stackoverflow/SO 问题重新生成数据框的代码

标签 python pandas dataframe

假设我有以下数据框。我想在 Stackoverflow/SO 上问一个关于我正在尝试执行的操作类型的问题。现在,为了帮助用户使用 SO,通常最好的做法是提供代码来重新生成有问题的数据帧。

                 sunlight   
                 sum    count   
city    date                                    
SFO 2014-05-31  -1805.04    31
SFO 2014-06-30  -579.52     30
SFO 2014-07-31  1025.51     31
SFO 2014-08-31  -705.18     31
SFO 2014-09-30  -1214.33    30

我不想手动输入提供生成上述数据帧的代码所需的所有文本。是否有一个我可以调用的 pandas 函数/命令,它将以某种结构输出数据帧,人们可以轻松地将其复制并粘贴到 python/ipython 命令行中,以生成数据帧对象。类似 df.head().to_clipboard() 的东西,但不是复制 df 的显示,而是复制生成 df 所需的代码。

上面的数据帧相当简单,但对于复杂的数据帧,在 SO 问题中手动输入生成数据帧所需的代码非常麻烦。

最佳答案

使用to_dict()

假设您有这个df

df = pd.DataFrame(np.arange(16).reshape(4, 4), list('abcd'),
                  pd.MultiIndex.from_product([list('AB'), ['One', 'Two']]))
df

enter image description here

print df

    A       B    
  One Two One Two
a   0   1   2   3
b   4   5   6   7
c   8   9  10  11
d  12  13  14  15

我首先打印df.to_dict()

print df.to_dict()

{('B', 'One'): {'a': 2, 'c': 10, 'b': 6, 'd': 14}, ('A', 'Two'): {'a': 1, 'c': 9, 'b': 5, 'd': 13}, ('A', 'One'): {'a': 0, 'c': 8, 'b': 4, 'd': 12}, ('B', 'Two'): {'a': 3, 'c': 11, 'b': 7, 'd': 15}}

然后我将其复制并粘贴到 pd.DataFrame() 中。您可以稍微格式化复制的文本以提高可读性。

df = pd.DataFrame({('B', 'One'): {'a': 2, 'c': 10, 'b': 6, 'd': 14},
                   ('A', 'Two'): {'a': 1, 'c': 9, 'b': 5, 'd': 13},
                   ('A', 'One'): {'a': 0, 'c': 8, 'b': 4, 'd': 12},
                   ('B', 'Two'): {'a': 3, 'c': 11, 'b': 7, 'd': 15}})

df

enter image description here

print df

    A       B    
  One Two One Two
a   0   1   2   3
b   4   5   6   7
c   8   9  10  11
d  12  13  14  15

关于python - 在 pandas 中为 Stackoverflow/SO 问题重新生成数据框的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38600508/

相关文章:

python - Pandas 用字典中的值替换部分字符串

python - 值包含分隔符的 ParserError

python - 如何比较 pandas 数据框中第二列的值与第一列的相同值?

python - 如何寻址列最小值的行

python - Pandas 根据索引对列值进行分箱

python - keras.metrics 没有属性 'Metric'

python - 使用 Bokeh 的对数标度上标指数

python - 使用 import 将新函数添加到类中

python - 根据一天中的时间选择 DataFrame 中的行?

python - 根据列标题获取Excel列字母 - Python