目标是获得一张值对为T1-T2的表。我有以下形式的数据:
df
T1 T2 Score
0 A B 5
1 A C 8
2 B C 4
我尝试过:
df.pivot_table('Score','T1','T2')
B C
A 5.0 8.0
B NaN 4.0
我希望:
A B C
A 5 8
B 5 4
C 8 4
我觉得有点像相关表。因为在这种情况下A-B对与B-A相同。
答案 0 :(得分:2)
首先通过交换pivot
和T1
和最后一个reindex
,将所有可能的索引值为combine_first
的列与另一个T2
的列添加:
idx = np.unique(df[['T1','T2']].values.ravel())
df1 = df.pivot_table('Score','T1','T2').reindex(index=idx, columns=idx)
df2 = df.pivot_table('Score','T2','T1').reindex(index=idx, columns=idx)
df = df1.combine_first(df2)
print (df)
A B C
T1
A NaN 5.0 8.0
B 5.0 NaN 4.0
C 8.0 4.0 NaN
答案 1 :(得分:0)
另一种使用merge
的方法:
df1 = df.pivot_table('Score','T1','T2')
df2 = df.pivot_table('Score','T2','T1')
common_val = np.intersect1d(df['T1'].unique(), df['T2'].unique()).tolist()
df = df1.merge(df2, how='outer', left_index=True, right_index=True, on=common_val)
print(df)
B C A
A 5.0 8.0 NaN
B NaN 4.0 5.0
C 4.0 NaN 8.0
答案 2 :(得分:0)
另一种方式:
<html>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<table id="myTable">
<tr class="header">
<th style="width:10%;">Name</th>
<th style="width:10%;">Lastname</th>
<th style="width:10%;">Value</th>
</tr>
<tr>
<td>Deneme</td>
<td>SDeneme</td>
<td class="sira">100</td>
<tr>
<tr>
<td>Ornek</td>
<td>SOrnek</td>
<td class="sira">150</td>
<tr>
</table>
<button name="siradaki" id="siradaki" class="btn btn-warning" onclick="siradaki();">Sıradaki Kim ?</button>
</html>