2017-11-11 3 views
1

私は以下のExcelファイルを持っています。パンダ:特定の列の最初の空のセルを見つけて追加する

1 | A | B | C | 
--------------------------- 
2 | apple| banana | tomato| 
--------------------------- 
3 | 3 | 4 | 4 | 
--------------------------- 
4 | 9 | 7 | 3 | 
--------------------------- 
5 |  | 2 | 1 | 
--------------------------- 
6 |  | 8 |  | 
--------------------------- 
7 |  |  |  | 
--------------------------- 

私は、Excelファイルを読み込み、パンダデータフレームに変換しopenpyxlを使用。 事は、データをループして特定の列の最後の行に追加する必要があります。例えば

First data to append: 4 apple, 2 banana 
Second data to append: 3 apple 
Third data to append: 3 apple, 2 banana, 5 tomato 

最初のデータを読み出した後、データフレームは、次のようになります。

1 | A | B | C | 
--------------------------- 
2 | apple| banana | tomato| 
--------------------------- 
3 | 3 | 4 | 4 | 
--------------------------- 
4 | 9 | 7 | 3 | 
--------------------------- 
5 | 4 | 2 | 1 | 
--------------------------- 
6 | *3 | 8 |  | 
--------------------------- 
7 |  | 2 |  | 
--------------------------- 

:第二のデータを読んだ後

1 | A | B | C | 
--------------------------- 
2 | apple| banana | tomato| 
--------------------------- 
3 | 3 | 4 | 4 | 
--------------------------- 
4 | 9 | 7 | 3 | 
--------------------------- 
5 | *4 | 2 | 1 | 
--------------------------- 
6 |  | 8 |  | 
--------------------------- 
7 |  | *2 |  | 
--------------------------- 

、データフレームは次のようになります3番目のデータを読み取った後、データフレームは次のようになります。

1 | A | B | C | 
--------------------------- 
2 | apple| banana | tomato| 
--------------------------- 
3 | 3 | 4 | 4 | 
--------------------------- 
4 | 9 | 7 | 3 | 
--------------------------- 
5 | 4 | 2 | 1 | 
--------------------------- 
6 | 3 | 8 | *5 | 
--------------------------- 
7 | *3 | 2 |  | 
--------------------------- 
8 |  | *2 |  | 
--------------------------- 

特定の列の最初の空のセルに新しいデータを追加する方法はありますか?ありがとう。

+0

のために行うことができる最高の、私は、ええ、このようになり@StevenGリストアップし、それ –

+0

でフレームを作成するために追加します簡単なはず。 – Bossam

答えて

0

私は、これは非常に些細なパンダではありませんあなた

d = defaultdict(list) 

d['apple'] = [3, 9] 
d['banana'] = [4, 7, 2, 8] 
d['tomato'] = [4, 3, 1] 

list_to_append = [ 
    dict(apple=4, banana=2), 
    dict(apple=3), 
    dict(apple=3, banana=2, tomato=5) 
] 

for a in list_to_append: 
    for k, v in a.items(): 
     d[k].append(v) 

pd.DataFrame.from_dict(d, orient='index').T 

    apple banana tomato 
0 3.0  4.0  4.0 
1 9.0  7.0  3.0 
2 4.0  2.0  1.0 
3 3.0  8.0  5.0 
4 3.0  2.0  NaN 
5 NaN  2.0  NaN 
関連する問題