python - 从 Pandas 的一系列线条中制作列

标签 python pandas

我有一个如下所示的 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/

相关文章:

python - 如何检测所有用于在特定字段的表单中输入字母的框?

Python Pandas 警告 : A value is trying to be set on a copy of a slice from a DataFrame

pandas - ELI5 解释权重和解释预测作为 Pandas 数据帧

python - Pandas 使用 agg() 函数旋转数据框

python - 如何将 for 循环中的 .pkl 文件 append 到 for 循环中创建的 pandas 数据帧?

python - 在python中的两个键上合并两个数据框

python - 使用 pytest 读写文件的模式

python - 删除 NaN 'Cells' 而不删除整个 ROW (Pandas,Python3)

python - Python中的联赛表-它不会将球队插入列表

Python csv阅读器忽略作为字符串一部分的双引号内的分隔符