【发布时间】:2022-12-11 17:48:33
【问题描述】:
我正在尝试通过读取 100 个 csv 文件并通过 .tail(1) 和 pd.concat() 保留每个 csv 的最后一行来构建数据框。当前结果是一个 df,其中包含每行数据的标题行。
我希望获得有关读取每个 csv 的最后一行并构建一个数据框的方法的指导,该数据框的标题行在顶部,然后只有数据行。
这是我当前的代码:
count = 0
with open('names.txt', 'r') as my_file:
newline_break = ""
for readline in my_file:
line_strip = readline.strip()
newline_break += line_strip
count +=1
try:
df = pd.read_csv('~/' + line_strip + '.csv',
index_col=None,
)
df2 = df.tail(1)
df3 = pd.concat([df2])
print(df3)
except Exception as e:
exc_type, exc_obj, exc_tb = sys.exc_info()
fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
print(exc_type, fname, exc_tb.tb_lineno)
.txt 文件是一个简单的名称列表,它为 df.read_csv 步骤选择 .csv 文件。
这是当前的输出:
| Unnamed: 0 | Date | name | field1 | field2 | field3 | field4 | field5 | field6 | field7 | field8 | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 532 | 532 | 2022-12-02 | Jones | 2.2 | 0.03 | 234 | 17.0 | 800 | 1.2 | 23.34 | 15.28 |
| Unnamed: 0 | Date | name | field1 | field2 | field3 | field4 | field5 | field6 | field7 | field8 | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 674 | 674 | 2022-12-02 | Smith | 3.81 | 4.08 | 3.75 | 3.99 | 16 | 2.832 | 3.97 | 4.05 |
| Unnamed: 0 | Date | name | field1 | field2 | field3 | field4 | field5 | field6 | field7 | field8 | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 674 | 674 | 2022-12-02 | Grove | 28.42 | 28.57 | 28.42 | 28.55 | 72 | 0.04 | 2.67 | 6.8 |
| Unnamed: 0 | Date | name | field1 | field2 | field3 | field4 | field5 | field6 | field7 | field8 | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 674 | 674 | 2022-12-02 | Injo | 3.09 | 3.16 | 3.08 | 3.1 | 462 | 0.94 | 2.93 | 2.90 |
| Unnamed: 0 | Date | name | field1 | field2 | field3 | field4 | field5 | field6 | field7 | field8 | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 674 | 674 | 2022-12-02 | Solas | 1.26 | 14.83 | 18.69 | 3.32 | 500 | 0.31 | 13.07 | 17.92 |
| Unnamed: 0 | Date | name | field1 | field2 | field3 | field4 | field5 | field6 | field7 | field8 | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 674 | 674 | 2022-12-02 | Resto | 1.84 | 1.04 | 1.04 | 3.77 | 100 | 0.1 | 9.9 | 7.7 |
这是所需的输出:
| Date | name | field1 | field2 | field3 | field4 | field5 | field6 | field7 | field8 |
|---|---|---|---|---|---|---|---|---|---|
| 2022-12-02 | Jones | 2.2 | 0.03 | 234 | 17.0 | 800 | 1.2 | 23.34 | 15.28 |
| 2022-12-02 | Smith | 3.81 | 4.08 | 3.75 | 3.99 | 16 | 2.832 | 3.97 | 4.05 |
| 2022-12-02 | Grove | 28.42 | 28.57 | 28.42 | 28.55 | 72 | 0.04 | 2.67 | 6.8 |
| 2022-12-02 | Injo | 3.09 | 3.16 | 3.08 | 3.1 | 462 | 0.94 | 2.93 | 2.90 |
| 2022-12-02 | Solas | 1.26 | 14.83 | 18.69 | 3.32 | 500 | 0.31 | 13.07 | 17.92 |
| 2022-12-02 | Resto | 1.84 | 1.04 | 1.04 | 3.77 | 100 | 0.1 | 9.9 | 7.7 |
*注意:删除额外的索引列也很好。 . . :-)
感谢您的指导。
【问题讨论】:
标签: python pandas csv concatenation