-1
データフレームで操作をしようとしていますが、私が望むように再フォーマットできないようです。パンダに2Dラベル付き配列を埋め込む
は私が持っている:
>>df = pd.DataFrame({
'person':['Al','Al','Bob','Bob','Bob','Sue','Sue'],
'pet':['Cat','Dog','Fish','Fish','Zebra','Fish','Dog']})
>>df
person pet
0 Al Cat
1 Al Dog
2 Bob Fish
3 Bob Fish
4 Bob Zebra
5 Sue Fish
6 Sue Dog
は、私は一人のレベルに集約したいので、のようなラベルを入れ子にしている:2つのラベル/ pet_info列内の列名がある
person pet_info
pet number
0 Al Cat 1
Dog 1
1 Bob Fish 2
Zebra 1
....
ようなので、その:
for row in df:
print(row['person'])
for stuff in row['pet_info']:
print(stuff['pet'])
意志出力:
Al
Cat
Dog
Bob
Fish
...
これはどのように行うのですか?私はこのようにこの変更を実装することはできませんし、私は合理的にパンダに精通しています...
ありがとう!
- ペットの組み合わせが、私はのためにのように、異なる方法でデータにアクセスできるようにしたいのです上記で詳しく説明したループ –
@ T.Kevinこのコードを実行し、結果を 'r'に代入し、' r.index.levels [1] 'を実行します。それはあなたの質問に答えますか? –
私はそう信じません。これは、個人とペットの組み合わせでデータフレームをマルチインデックス化します。上記の質問では、行['pet_info']がpet、numberを返すように、サブリストに対してstuff ['pet']がcatを返すように、データを構造化する必要があります。この問題の難しい部分は、集約やグループ化ではなく、forループのような特定の方法でデータにアクセスできることです。助けてくれてありがとう! –