如何使用 Python 转置具有不同列数的表



>我需要帮助将这些示例从行转到列。我知道我可以使用Microsoft Excel来做到这一点,但由于我将处理更大的文件(>100万行(,我想知道是否有办法使用python来做到这一点。

输入.csv

-0.02 | -120.38 |         |
-0.01 | -120.38 |  -120.1 |
-0.02 | -120.4  |         |
-0.01 | -70.45  |         |
0     |  10.34  |   3.4   | 3.4
0.1   |  20.21  |   90.45 |
0.2   |  90.45  |   110.3 |

我希望得到这个结果

输出.csv

-0.02   |   -0.01   | -0.02  |  -0.01  |    0     | 0.1   | 0.2
-120.38 |   -120.38 | -120.4 |  -70.45 |    10.34 | 20.21 | 90.45
        |   -120.1  |        |         |    3.4   | 90.45 | 110.3
        |           |        |         |    3.4   |       |

但我得到的是这个结果

-0.02   |   -0.01   | -0.02  |  -0.01  |    0     | 0.1   | 0.2
-120.38 |   -120.38 | -120.4 |  -70.45 |    10.34 | 20.21 | 90.45

它只打印出前两行。

我正在使用此脚本来转置表格:

transpose.py

import csv
data = zip(*csv.reader(open("input.csv", "rb")))
csv.writer(open("output.csv", "wb")).writerows(data)

谢谢你的帮助。

不是纯python,但如果你能使用pandas库,那就很容易了:

import pandas
df = pandas.read_csv('input.csv', header=None)
df.transpose().to_excel('output.csv', header=None, index=None)

最新更新