Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为单行指定多个值_Python_Pandas - Fatal编程技术网

Python 为单行指定多个值

Python 为单行指定多个值,python,pandas,Python,Pandas,我有一个熊猫数据框 用户ID 用户名 用户声誉 答案的数目 问题数量 徽章名称 警徽猫 0 1. 艾哈迈德·阿尼斯 123 2. 3. 托普 HTML 1. 1. 艾哈迈德·阿尼斯 123 2. 3. 程序员 随机的 我想您正在寻找设置索引: cols = ["USER_ID", "USER_NAME", "USER_REPUTATION", "NUMBER_OF_ANSWERS", "NUMBER_OF_

我有一个熊猫数据框

用户ID 用户名 用户声誉 答案的数目 问题数量 徽章名称 警徽猫 0 1. 艾哈迈德·阿尼斯 123 2. 3. 托普 HTML 1. 1. 艾哈迈德·阿尼斯 123 2. 3. 程序员 随机的
我想您正在寻找
设置索引

cols = ["USER_ID", "USER_NAME", "USER_REPUTATION", "NUMBER_OF_ANSWERS", "NUMBER_OF_QUESTIONS"]

ndf = df.set_index(cols)
使用一些示例数据:

>>> df
      A  B    C         D         E
0   one  A  foo  0.945847 -0.561259
1   one  A  foo  0.579520  0.130518
2   one  A  foo -0.683629 -1.084639
3   one  A  bar -0.168223 -0.311991
4   one  B  bar  0.007965  1.108121
5   one  B  bar -1.877323 -0.258055
6   one  B  bar  0.992160  0.192339
7   one  B  foo -0.421557 -0.805156
8   two  C  bar -0.346622  1.335197
9   two  C  foo -0.979483 -1.382465
10  two  C  bar -0.815332 -1.491385
11  two  C  foo -2.112730 -0.331574

>>> cols = ["A", "B", "C"]
>>> ndf = df.set_index(cols)
>>> ndf

                  D         E
A   B C
one A foo  0.945847 -0.561259
      foo  0.579520  0.130518
      foo -0.683629 -1.084639
      bar -0.168223 -0.311991
    B bar  0.007965  1.108121
      bar -1.877323 -0.258055
      bar  0.992160  0.192339
      foo -0.421557 -0.805156
two C bar -0.346622  1.335197
      foo -0.979483 -1.382465
      bar -0.815332 -1.491385
      foo -2.112730 -0.331574
ndf
现在是一个多索引帧


为了使
D
E
A
B
C
处于同一级别,我们可以将索引设置为所有这些索引,以便于显示:

the_df = df.set_index(["A", "B", "C", "D", "E"])
获取(例如,在IPython笔记本中)

请注意,如果要在控制台中查看此项:

>>> the_df

Empty DataFrame
Columns: []
Index: [(one, A, foo, 0.945847, -0.561259), (one, A, foo, 0.57952, 0.130518), ...]
因为我们将所有内容都设置为索引,而值中没有任何内容!但是如果您也希望在控制台中看到它,一个技巧是使用“ghost”列,即名称和值为空字符串
“”


删除HTML中额外的第一行:

from bs4 import BeautifulSoup

# form the soup
soup = BeautifulSoup(the_df.to_html())

# find the first row and remove it
soup.find("tr").extract()

# get HTML back
html = str(soup)

你想要
df.drop_duplicates()
?不,我想要一些与多索引相关的东西。我已经编辑了这篇博文,这更合适、更正确。第一件事,如果你看到D和E在A B C上面1行,那么我们能把它们放在同一个级别上,并得到结果吗?@AhmadAnis当然,可以通过将所有列名设置为索引来实现。编辑了答案。它在索引顶部添加了一个额外的行,当我用HTML呈现它时,我可以看到它。@AhmadAnis我明白了,如果你有BeautifulSoup,我添加了一种在HTML中删除它的方法。现在效果非常好
from bs4 import BeautifulSoup

# form the soup
soup = BeautifulSoup(the_df.to_html())

# find the first row and remove it
soup.find("tr").extract()

# get HTML back
html = str(soup)