-1
import pandas as pd
df1 = pd.DataFrame({'index': range(6),
'Name': ["Swap1", "Swap2", "Swap3", "Swap1", "Swap2", "Swap3"],
'LegName': ["pay", "receive", "total", "pay", "receive", "total"],
'Metric': ["pv", "pv", "pv", "start", "start", "start"],
'result': [1, 2, 3, "1y", "1y", "1y"]})
print(df1)
結果列に数値型と非数値型の両方が含まれます。 aggfunc=lambda x: x
はパンダ0.16と0.17を使用していましたが、0.18では失敗しています。 aggfunc=lambda x: sum(x)
は、すべてのデータが数値である場合に機能し、すべてのデータが非数値である場合にはaggfunc=lambda x: ' '.join(x)
が機能します。しかし、数値と非数値の両方の場合、データセットに悩まされています。 aggfuncに条件を含める方法が不明です。すべてのエントリには一意の値があります。したがって、集約は実際には必要ありません。パンダ0.18データに数値データ型と非数値データ型の両方が含まれている場合のデータフレームのピボット方法
print(df1.pivot_table(values='result', index='index',
columns=['Name', 'LegName', 'Metric'],
aggfunc=lambda x:x))
print(df1.pivot_table(values='result', index='index',
columns=['Name', 'LegName', 'Metric'],
aggfunc=lambda x: sum(x)))
print(df1.pivot_table(values='result', index='index',
columns=['Name', 'LegName', 'Metric'],
aggfunc=lambda x: ' '.join(x)))
ありがとうございました!これは機能します。私はピボットテーブルを使って特定の方法で情報を表示しようとしていました。すべてのエントリは一意であるとみなされ、集約は必要ありません。ありがとう!! – SHK