我有一个如下所示的数据框df1
:
df1 = pd.DataFrame({'A':[0,5,4,8,9,0,7,6],
'B':['a','s','d','f','g','h','j','k'],
'C':['XX','XX','XX','YY','YY','WW','ZZ','ZZ']})
我的目标是根据列C
中包含的值对元素进行分组,以便具有相同值的行具有相同的索引(必须包含存储在C
中的值)。因此输出应该是这样的:
A B
XX 0 a
5 s
4 d
YY 8 f
9 g
WW 0 h
ZZ 7 j
6 k
我尝试使用命令df.groupby('C')
,但它返回以下对象:
<pandas.core.groupby.DataFrameGroupBy object at 0x000000001A9D4860>
你能否建议我以优雅而聪明的方式实现我的目标?
注意:我认为我的问题与多索引
有某种关系答案 0 :(得分:3)
您似乎需要DataFrame.set_index
df2 = df1.set_index('C')
print (df2)
A B
C
XX 0 a
XX 5 s
XX 4 d
YY 8 f
YY 9 g
WW 0 h
ZZ 7 j
ZZ 6 k
print (df2.loc['XX'])
A B
C
XX 0 a
XX 5 s
XX 4 d
如果列MultiIndex
和C
需要A
:
df3 = df1.set_index(['C', 'A'])
print (df3)
B
C A
XX 0 a
5 s
4 d
YY 8 f
9 g
WW 0 h
ZZ 7 j
6 k
print (df3.loc['XX'])
B
A
0 a
5 s
4 d
答案 1 :(得分:2)
我认为你正在寻找payload = {
'username': 'xxxxxx',
'password': 'xxxxxxx'
}
即
with requests.Session() as s:
p = s.post('https://service.rl360.com/scripts/customer.cgi', data=payload)
# print the html returned to see if it's a successful login page.
print p.text
# An authorised request.
r = s.get('https://service.rl360.com/scripts/customer.cgi/SC/myAccount.php')
print r.text
输出:
A C B WW h 0 XX a 0 d 4 s 5 YY f 8 g 9 ZZ j 7 k 6