我没有清楚的表。请帮忙。 我的数据是:
0 2017 IX 2018 X 2018 X 2018 X 2018 0 2017 IX 2018 X 2018 X 2018 X 2018
0 2017 IX 2018 0 2017 IX 2018
UKUPNO 1.053 1.075 1.093 103,8 101,7 1.633 1.669 1.701 104,2 101,9
A Poljoprivreda, šumarstvo i ribolov 907 888 925 102,0 104,2 1.394 1.356 1.420 101,9 104,7
B Vađenje ruda i kamena 913 919 839 91,9 91,3 1.395 1.406 1.297 93,0 92,2
C Prerađivačka industrija 769 764 775 100,8 101,4 1.176 1.169 1.187 100,9 101,5
D Proizvodnja i snabdijevanje 1.574 1.570 1.647 104,6 104,9 2.459 2.455 2.579 104,9 105,1
električnom energijom, plinom,
parom i klimatizacija
我使用以下代码:
df = pd.read_fwf(io.StringIO(t), header=None, skiprows=1)
然后我得到需要清理的输出...例如,我将D列分隔为三列:
D Proizvodnja i snabdijevanje 1.574 1.570 1.647 104,6 104,9 2.459 2.455 2.579 104,9 105,1
13 NaN električnom energijom, plinom, NaN NaN NaN NaN NaN NaN NaN NaN
14 NaN parom i klimatizacija NaN NaN NaN NaN NaN NaN NaN NaN
答案 0 :(得分:0)
仅D-“行”的文本被分成三行,是不是只有问题了?如果是这样,您可以这样做:
s = """
0 2017 IX 2018 X 2018 X 2018 X 2018 0 2017 IX 2018 X 2018 X 2018 X 2018
0 2017 IX 2018 0 2017 IX 2018
UKUPNO 1.053 1.075 1.093 103,8 101,7 1.633 1.669 1.701 104,2 101,9
A Poljoprivreda, šumarstvo i ribolov 907 888 925 102,0 104,2 1.394 1.356 1.420 101,9 104,7
B Vađenje ruda i kamena 913 919 839 91,9 91,3 1.395 1.406 1.297 93,0 92,2
C Prerađivačka industrija 769 764 775 100,8 101,4 1.176 1.169 1.187 100,9 101,5
D Proizvodnja i snabdijevanje 1.574 1.570 1.647 104,6 104,9 2.459 2.455 2.579 104,9 105,1
električnom energijom, plinom,
parom i klimatizacija
"""
df = pd.read_fwf(pd.compat.StringIO(s), header=None, skiprows=5)
df[0] = df[0].ffill()
df[1] = df[0].map(df[1].groupby(df[0]).agg(lambda x: ' '.join(x)))
df = df.dropna(axis=0)
df
输出:
0 1 2 3 4 5 6 7 8 9 10 11
0 A Poljoprivreda, šumarstvo i ribolov 907.000 888.00 925.000 102,0 104,2 1.394 1.356 1.420 101,9 104,7
1 B Vađenje ruda i kamena 913.000 919.00 839.000 91,9 91,3 1.395 1.406 1.297 93,0 92,2
2 C Prerađivačka industrija 769.000 764.00 775.000 100,8 101,4 1.176 1.169 1.187 100,9 101,5
3 D Proizvodnja i snabdijevanje električnom energi... 1.574 1.57 1.647 104,6 104,9 2.459 2.455 2.579 104,9 105,1