【问题标题】:How to have the first row of a dataframe to be left empty (value_counts function)如何将数据框的第一行留空(value_counts 函数)
【发布时间】:2018-04-19 13:54:28
【问题描述】:

我有一个使用 (value_counts) 函数构建的 pandas 数据框。当我在电子邮件正文中调用该数据框时,它会显示如下

数据框的更新视图:

  Exact match   169
1 Missing       121
2 Dropped by 1% 1

我想让标题(或第一行)为空或有标题,但将第一行推到数据框中的第二行。语法如下:

SumMail = pd.value_counts(Output1['Status'].values)

下面是Output1数据框的视图:

      Status
0 ABC Exact match
1 DEF Dropped by 1%
2 XYZ Exact match

谁能给点建议。

【问题讨论】:

  • 请将您的数据框发布为文本,而不是图像。
  • 你试过删除.values吗?在不知道Output1 的情况下很难说出如何解决它
  • 我建议尝试在第 0 个位置插入一行 [np.nan, np.nan] (stackoverflow.com/questions/24284342/…)

标签: python python-3.x pandas dataframe


【解决方案1】:

函数pd.value_counts 接受一个系列作为输入。因此,使用.values 会删除列名信息并将其转换为数组,这就是它之后使用第一行作为列名的原因。删除.values 将解决这个问题。

示例

Output1 = pd.DataFrame({'':['a','b','c','d','e'],'Status':['Exact match','Dropped by 1%','Exact match','Missing','Exact match']})
print(Output1)
#              Status
# 0  a    Exact match
# 1  b  Dropped by 1%
# 2  c    Exact match
# 3  d        Missing
# 4  e    Exact match

# First option
print(pd.value_counts(Output1['Status']))
# Exact match      3
# Missing          1
# Dropped by 1%    1
# Name: Status, dtype: int64 # Note the Name still present

# Second option
print(pd.DataFrame(pd.value_counts(Output1['Status'])))
#                    Status
# Exact match         3
# Missing             1
# Dropped by 1%       1

【讨论】:

  • 嘿 xg.plt.py,我确实从代码中删除了“.values”,但返回的输出格式相同...
  • 你是如何打印SumMail
  • 谢谢 xg,我可以有一个标题列,结果从第 2 行开始显示。但是,如何重命名标题列中的标签。下面给出的是我的数据框的视图,未命名:0,状态 0,缺失,3 1,完全匹配,1 2,NaN,1 我尝试使用重命名功能但仍然没有运气,请您帮忙。谢谢..
  • @Taukheer 你试过here的解释吗?如果它对您不起作用,那么可能值得为此提出另一个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-19
  • 2023-04-02
  • 1970-01-01
  • 2017-01-26
  • 2015-12-09
  • 2017-08-23
相关资源
最近更新 更多