我有一个如下所示的 csv 文件:
A, B
1,2
3,4
5,6
C,D
7,8
9,10
11,12
E,F
13,14
15,16
如您所见和想象的那样,当我使用 pd.read_csv 导入此数据时,pandas 创建了包含两列 (A,B) 和一堆行的整个内容。这是正确的,因为形状。但是,我想创建各种列(A、B、C、D ...)。幸运的是,每个“列”的末尾都有一个空格,我认为这可以用来以某种方式分隔这些行。但是,我不知道如何处理。
数据:
https://raw.githubusercontent.com/AlessandroMDO/Dinamica_de_Voo/master/data.csv
最佳答案
这是 pandas.read_csv
的正常行为, 但通常数据不会以这种方式存储在 csv 文件中。
您可以尝试读取 csv,去掉多余的空格,然后先用空行将其拆分为多个部分。然后使用 pandas.read_csv
阅读每个部分和 StringIO
并使用 pandas.concat
将它们连接在一起.
import pandas as pd
from io import StringIO
with open('test.csv', 'r') as f:
parts = f.read().strip().split('\n\n')
df = pd.concat([pd.read_csv(StringIO(part)) for part in parts], axis=1)
我已经用你的 csv 试过了:
Alpha Cd Alpha CL Alpha ... Cnp Alpha Cnr Alpha Clr
0 -14.0 0.08941 -14.0 -0.19430 -14.0 ... 0.0 -14.0 0.0 -14.0 0.0
1 -12.0 0.07646 -12.0 -0.17150 -12.0 ... 0.0 -12.0 0.0 -12.0 0.0
2 -10.0 0.06509 -10.0 -0.14710 -10.0 ... 0.0 -10.0 0.0 -10.0 0.0
3 -8.0 0.05545 -8.0 -0.12150 -8.0 ... 0.0 -8.0 0.0 -8.0 0.0
4 -6.0 0.04766 -6.0 -0.09479 -6.0 ... 0.0 -6.0 0.0 -6.0 0.0
5 -4.0 0.04181 -4.0 -0.06722 -4.0 ... 0.0 -4.0 0.0 -4.0 0.0
6 -2.0 0.03797 -2.0 -0.03905 -2.0 ... 0.0 -2.0 0.0 -2.0 0.0
7 0.0 0.03620 0.0 -0.01054 0.0 ... 0.0 0.0 0.0 0.0 0.0
8 2.0 0.03651 2.0 0.01806 2.0 ... 0.0 2.0 0.0 2.0 0.0
9 4.0 0.03960 4.0 0.05879 4.0 ... 0.0 4.0 0.0 4.0 0.0
10 6.0 0.04814 6.0 0.12650 6.0 ... 0.0 6.0 0.0 6.0 0.0
11 8.0 0.06494 8.0 0.22050 8.0 ... 0.0 8.0 0.0 8.0 0.0
12 10.0 0.09268 10.0 0.33960 10.0 ... 0.0 10.0 0.0 10.0 0.0
13 12.0 0.13390 12.0 0.48240 12.0 ... 0.0 12.0 0.0 12.0 0.0
14 14.0 0.19110 14.0 0.64710 14.0 ... 0.0 14.0 0.0 14.0 0.0
[15 rows x 36 columns]
关于python - 从 Pandas 的一系列线条中制作列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61347839/