dataframepython将一些值从水平改为垂直

2024-09-27 18:06:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有92列和13行数据框,其中每行对应一个扑克手。列(并非所有)名称和值如下所示:

'Soft','Hand_ID','Table_Size', 'Blinds', 'Day', 'No_of_players', 'Seat_1','Seat_2','Seat_3', 'Seat_4', 'Seat_5', 'Seat_6'
PokerStars  172109655423    6-max   €0.50/€1.00 2017/06/22  4   KO  fasolakia14 Johnii141   bogec   0   0
PokerStars  143736274858    6-max   £0.25/£0.50 2015/11/13  6   Racushniak  koluha1000  Bantina DMIGNN  Johnii141   vor4mohs

我需要重塑列:'座位1','座位2','座位3','座位4','座位5','座位6'垂直。 输出应如下所示: Output


Tags: 数据名称idsizetablemaxsoft扑克
2条回答

假设您有一个1.数据帧我建议用这样简单的方法。你知道吗

>>> df
Soft    Hand_ID Table_Size  Blinds  Day No_of_players   Seat_1  Seat_2  Seat_3  Seat_4  Seat_5  Seat_6
PokerStars  172109655423    6-max   €0.50/€1.00 2017/06/22  4   KO  fasolakia14 Johnii141   bogec   0   0
PokerStars  143736274858    6-max   £0.25/£0.50 2015/11/13  6   Racushniak  koluha1000  Bantina DMIGNN  Johnii141   vor4mohs

只需将您的座位列添加到一个列中

>>> df['Seats'] = df['Seat_1'] + " " + df['Seat_2'] + " " + df['Seat_3'] + " " + df['Seat_4'] + " " + df['Seat_5'] + " " + df['Seat_6']
>>> df.drop(['Seat_1', 'Seat_2', 'Seat_3', 'Seat_4', 'Seat_5', 'Seat_6'], axis=1)

你会得到想要的结果

Soft    Hand_ID Table_Size  Blinds  Day No_of_players   Seats
PokerStars  172109655423    6-max   €0.50/€1.00 2017/06/22  4   KO fasolakia14 Johnii141 bogec 0 0
PokerStars  143736274858    6-max   £0.25/£0.50 2015/11/13  6   Racushniak koluha1000 Bantina DMIGNN Johnii141...

只是需要使用pd.熔化. 因为在整个数据帧中有许多列,所以没有看到这种情况。 代码可以如下所示: 数据框座位=pd.熔化(df,id\u vars=['Hand\u id','Soft','Table\u Size','Blinds','Day','No\u of \u players','Pot','Rake'], 值\u vars=['座椅\u 1'、'座椅\u 2'、'座椅\u 3'、'座椅\u 4'、'座椅\u 5'、'座椅\u 6'], var\u name='Seats\u var',value\u name='Seats')

df_Seats = df_Seats.drop('Seats_var', 1)

输出外观: http://prntscr.com/mrzu3z 但仍然不知道如何解决Hand\u Id、Soft等值重复的问题。你知道吗

相关问题 更多 >

    热门问题