python - 如何使用 VBA 或 Python 将行转换为列?
问题描述
我需要转换顶部的表格,其中包含 1 个单程航班的行。我不知道从哪里开始创建一个 VBA 或 Python 脚本来转置它以获得类似于底部图形的格式,有什么想法吗?我对编码和数据操作还是很陌生,感谢您的帮助。
解决方案
感谢所有花时间阅读并回复我的问题的人,谢谢。我设法找到了一种使用 VBA 的方法,使用以下代码。在运行代码之前必须进行一些操作,例如调整标题等。
Dim i As Integer 'Import row
Dim k As Integer 'Pivot row
Dim m As Integer 'Pivot column
Dim Timestamp As Date
i = 2
k = 1
Do Until Sheet1.Cells(i, 3) = ""
If Sheet1.Cells(i, 4) <> "" Then
If Sheet1.Cells(i, 3) <> Sheet1.Cells(i - 1, 3) Then
k = k + 1
Sheet2.Cells(k, 2) = Sheet1.Cells(i, 1)
Sheet2.Cells(k, 3) = Sheet1.Cells(i, 4)
Sheet2.Cells(k, 4) = "LGW"
Sheet2.Cells(k, 5) = Sheet1.Cells(i, 6)
Sheet2.Cells(k, 6) = Sheet1.Cells(i, 7)
End If
m = Application.WorksheetFunction.Match(Sheet1.Cells(i, 8), Sheet2.Rows(1), 0)
If Sheet2.Cells(k, 1) = "" Then
Sheet2.Cells(k, 1) = DateSerial(Left(Sheet1.Cells(i, 9), 4), Mid(Sheet1.Cells(i, 9), 6, 2), Mid(Sheet1.Cells(i, 9), 9, 2))
End If
Sheet2.Cells(k, m) = DateSerial(Left(Sheet1.Cells(i, 9), 4), Mid(Sheet1.Cells(i, 9), 6, 2), Mid(Sheet1.Cells(i, 9), 9, 2)) + (Mid(Sheet1.Cells(i, 9), 12, 2) / 24) + (Mid(Sheet1.Cells(i, 9), 15, 2) / 1440) + (Mid(Sheet1.Cells(i, 9), 18, 2) / 86400)
End If
i = i + 1
Loop
End Sub
推荐阅读
- python - 等待dynamodb创建表,避免Requested resource not found
- python - My list prints out the Objects instead of the values
- python-3.x - Reshaping 1-D Data to 2-D Data for Matplotlib Pcolormesh
- php - PHP parse array to get index wise result
- python - Scrapy - multiple spiders - processing data from one spider while other are still running
- apache-spark - PySpark 中的 ModuleNotFoundError 在 serializers.py 中引起
- python - bad key error occurred when tried to fetch data from api endpoint in python?
- apache-flink - Supported data types in Flink SQL
- apache-kafka - Kafka Schema Registry JSON Schema Restproxy 问题
- python - Python模块(pyenv)安装不起作用