将固定分隔文件导入具有数据类型的Pandas

2024-06-28 10:54:13 发布

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

我正在尝试使用read.fwf()函数将固定宽度的文件读入Pandas,该函数用于以下具有固定宽度的数据。有人能帮我修复代码,让它加载正确的数据类型吗。谢谢

样本数据:

0000   51243 603896 1 EPS 1412    0.5100 140408 08:55:38 140408 08:55:38 X 140414 10:28:23
0000   51243 603896 1 EPS 1412    0.5700 140716 15:35:07 140716 15:35:07 X 240713 15:35:07
AACC   00371 071417 1 EPS 0912    0.2900 090821 18:28:01 091116 21:46:13 X 191117 21:49:53
AACC   51308 571315 1 EPS 0912    0.1100 091105 18:11:49 091105 18:10:24 X 191103 18:10:24
AACE   00505 048634 1 EPS 0006    0.9900 000607 17:24:39 000613 12:26:11 X                
AAGD   51020 537668 1 EPS 1212   20.2000 120810 02:58:09 120814 14:48:50 X 220812 14:48:50
AAGD   51020 537668 1 EPS 1212   20.4000 120830 07:32:29 120830 07:30:49 X 220828 07:30:49

Field Definitions + Length + Datatype


Tags: 文件数据函数代码fieldpandasread宽度
1条回答
网友
1楼 · 发布于 2024-06-28 10:54:13

请尝试改为使用colspecs。代码的问题在于,当您提供宽度时,您没有考虑其间的空格:

df = pd.read_fwf('test.csv',
                 colspecs=[
                     (0, 6),
                     (7, 12),
                     (13, 19),
                     (20, 21),
                     (22, 25),
                     (26, 30),
                     (31, 40),
                     (41, 47),
                     (48, 56),
                     (57, 63),
                     (64, 72),
                     (73, 74),
                     (75, 81),
                     (82, 90),
                 ],
                 names=['TICKER', 'ESTIMATOR', 'ANALYST_CODE', 'Forecast_Period', 'Measure', 'Period_End_Date', 'Value',
                        'Activation_Date', 'Activation_Time', 'Exclude_Date', 'Exclude_time', 'Exclude_Flag',
                        'Exclude_end_Date', 'Exclude_end_time'])
print(df)


 TICKER  ESTIMATOR  ANALYST_CODE  Forecast_Period Measure  Period_End_Date  Value  Activation_Date Activation_Time  Exclude_Date Exclude_time Exclude_Flag  Exclude_end_Date Exclude_end_time
0   0000        NaN           NaN              NaN    None              NaN    NaN              NaN            None           NaN         None         None               NaN             None
1   0000    51243.0      603896.0              1.0     EPS           1412.0   0.57         140716.0        15:35:07      140716.0     15:35:07            X          240713.0         15:35:07
2   AACC      371.0       71417.0              1.0     EPS            912.0   0.29          90821.0        18:28:01       91116.0     21:46:13            X          191117.0         21:49:53
3   AACC    51308.0      571315.0              1.0     EPS            912.0   0.11          91105.0        18:11:49       91105.0     18:10:24            X          191103.0         18:10:24
4   AACE      505.0       48634.0              1.0     EPS              6.0   0.99            607.0        17:24:39         613.0     12:26:11            X               NaN              NaN
5   AAGD    51020.0      537668.0              1.0     EPS           1212.0  20.20         120810.0        02:58:09      120814.0     14:48:50            X          220812.0         14:48:50
6   AAGD    51020.0      537668.0              1.0     EPS           1212.0  20.40         120830.0        07:32:29      120830.0     07:30:49            X          220828.0         07:30:49

相关问题 更多 >