我有以下excel文件。
1 | A | B | C |
---------------------------
2 | apple| banana | tomato|
---------------------------
3 | 3 | 4 | 4 |
---------------------------
4 | 9 | 7 | 3 |
---------------------------
5 | | 2 | 1 |
---------------------------
6 | | 8 | |
---------------------------
7 | | | |
---------------------------
我使用 openpyxl 来阅读excel文件并转换为 pandas dataframe 。 问题是,我必须遍历数据并附加到特定列的最后一行。
例如,
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 | | 8 | |
---------------------------
7 | | *2 | |
---------------------------
读取第二个数据后,数据框应如下所示:
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 | 3 | 8 | *5 |
---------------------------
7 | *3 | 2 | |
---------------------------
8 | | *2 | |
---------------------------
有没有办法将新数据附加到特定列的第一个空单元格?感谢。
答案 0 :(得分: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