:
まず私は、文字列からのデータでDataFrame
を作成していますが(などpd.read_csv
、)ファイルからそれを読むことができます
import pandas as pd
data = '''orange a
banana a
grape b
grape a
orange b
apple b
orange b
banana a'''
rows = [row.split() for row in data.split('\n')]
print(rows)
df1 = pd.DataFrame(rows, columns=['col 1', 'col 2'])
print(df1)
結果
[['orange', 'a'], ['banana', 'a'], ['grape', 'b'], ['grape', 'a'],
['orange', 'b'], ['apple', 'b'], ['orange', 'b'], ['banana', 'a']]
col 1 col 2
0 orange a
1 banana a
2 grape b
3 grape a
4 orange b
5 apple b
6 orange b
7 banana a
今私はそれらを数えるために要素をグループ化することができます
df2 = df.groupby(['col 1', 'col 2']).size().reset_index(name='counts')
print(df2)
結果
col 1 col 2 counts
0 apple b 1
1 banana a 2
2 grape a 1
3 grape b 1
4 orange a 1
5 orange b 2
そして私は、予想される結果を得るためにpivot
を使用することができます。
df3 = df2.pivot(index='col 2', columns='col 1', values='counts')
print(df3)
結果は
col 1 apple banana grape orange
col 2
a NaN 2.0 1.0 1.0
b 1.0 NaN 1.0 2.0
空所(NaN
)がありますので、私は0
df4 = df3.fillnan(0)
print(df4)
結果とそれを埋める:
col 1 apple banana grape orange
col 2
a 0.0 2.0 1.0 1.0
b 1.0 0.0 1.0 2.0
あなたは 'pandas'を使うのですか? – furas