删除熊猫中的“行索引”

时间:2019-09-28 08:24:31

标签: python pandas indexing

我有下面的数据框,其中我试图删除第一列,这是在pandas数据框/系列中分配的默认列。我该如何摆脱呢?

Actual Result

实际结果应该没有第一列为“ 0”的结果。 我已经尝试过使用带有drop的reset索引,但是没有任何效果。

这是我的代码,它发送带有数据帧输出的邮件。

def send_email(index):
    fromaddr = ""
    toaddr = ""
    msg = MIMEMultipart()
    msg['From'] = fromaddr
    msg['To'] = toaddr
    msg['Subject'] = "Timestamp Alarm"
    df1 = df.iloc[index,1:]
    new = df1

    body = """\
<html>
  <head></head>
  <body>
    {0}
  </body>
</html>
""".format(pd.DataFrame(new).T.to_html())
    part1 = MIMEText(body,'html')
    msg.attach(part1)
    server = smtplib.SMTP("smtp.gmail.com", 587)
    server.starttls()
    server.login('***', '**')
    server.sendmail('','',msg.as_string())
    server.quit()

2 个答案:

答案 0 :(得分:0)

请参阅以下内容并与您的问题有关。

通用解决方案

import pandas as pd
d = {'Field_A': 'FA', 'Field_B': 'FB', 'Field_C': 'FC'}
df = pd.DataFrame({0: d}).T
df

输出

    Field_A Field_B Field_C
0   FA      FB      FC

特定解决方案

如果只需要Field_AField_BField_C列的单元格值,则只需调用df.loc[0]。在您的情况下,您需要更改定义变量new的行。

new = df.loc[index]

答案 1 :(得分:0)

查看 to_html 文档。

此功能包含a.o。 index 参数(默认为 True ), 决定是否生成索引列。

也许您应该使用 False 值传递它。

另一个选项

将DataFrame打印(然后发送)为“普通”文本。

要隐藏索引列,请同时传递 index = False

print(df.to_string(index=False))