Txt到csv格式,包含行和列[python]

2024-10-01 22:39:00 发布

您现在位置:Python中文网/ 问答频道 /正文

需要帮助将txt文件转换为csv,行和列保持不变。文本文件如下: (http://weather.uwyo.edu/cgi-bin/sounding?region=naconf&TYPE=TEXT%3ALIST&YEAR=2020&MONTH=06&FROM=2300&TO=2300&STNM=72265

到目前为止我只有这个

df = pd.read_csv('sounding-72265-2020010100.txt',delimiter=',')
df.to_csv('sounding-72265-2020010100.csv')

但是它只有一列,而所有其他列都在它的行中。 相反,您希望将其格式化为这样的格式

CSV Format

谢谢你的帮助


Tags: 文件csvtxthttpdfbinregion行和列
1条回答
网友
1楼 · 发布于 2024-10-01 22:39:00

我假设你可以从网站上复制的文本开始;i、 e.通过复制/粘贴创建一个data.txt文件,如下所示:

1000.0      8                                                               
  925.0    718                                                               
  909.0    872   39.6    4.6     12   5.88     80      7  321.4  340.8  322.5
  900.0    964   37.6   11.6     21   9.62     75      8  320.2  351.3  322.1
  883.0   1139   36.6    7.6     17   7.47     65      9  321.0  345.3  322.4
...
...
...

然后主要基于this answer进行以下工作:

import pandas as pd

df = pd.read_table('data.txt', header=None, sep='\n')
df = df[0].str.strip().str.split('\s+', expand=True)

您只读取以新行分隔的数据,生成一列df。然后使用字符串方法格式化条目,并将其展开为新的数据帧

然后,您可以在this answer的帮助下在中添加列名:

col1 = 'PRES   HGHT   TEMP   DWPT   RELH   MIXR   DRCT   SKNT   THTA   THTE   THTV'.split()
col2 = 'hPa     m      C      C      %    g/kg    deg   knot     K      K      K '.split()

df.columns = pd.MultiIndex.from_tuples(zip(col1,col2), names = ['Variable','Unit'])

结果(df.head()):

Variable    PRES  HGHT  TEMP  DWPT  RELH  MIXR  DRCT  SKNT   THTA   THTE   THTV
Unit         hPa     m     C     C     %  g/kg   deg  knot      K      K      K
0         1000.0     8  None  None  None  None  None  None   None   None   None
1          925.0   718  None  None  None  None  None  None   None   None   None
2          909.0   872  39.6   4.6    12  5.88    80     7  321.4  340.8  322.5
3          900.0   964  37.6  11.6    21  9.62    75     8  320.2  351.3  322.1
4          883.0  1139  36.6   7.6    17  7.47    65     9  321.0  345.3  322.4

实际上,如果是我,我可能会删除“Units”列名称,b/c我认为多索引列可以使切片更复杂

同样,读取数据和列名都假设您可以将它们复制粘贴到文本文件/Python中,然后进行解析。如果你正在阅读很多这样的网页,或者想做一些网页抓取,那就需要额外的工作

相关问题 更多 >

    热门问题