[英]Space separated file to Pandas when values have spaces
我有一個空格分隔的文本文件。 前 3 列在 values 中包含空格,但它們具有固定寬度(7 個字符)。
例子:
A123456 B123456 C123456 12 158 325 0 14
D123456 E123456 F123456 1 147 23 711 0
G1 3456 H123456 F 23456 158 11 7 574 12589
J1234 6 K 456 L123456 1458 2 0.45 1 78
期望的輸出:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|
0 | A123456 | B123456 | C123456 | 12 | 158 | 325 | 0 |
1 | D123456 | E123456 | F123456 | 1 | 147 | 23 | 711 |
2 | G1 3456 | H123456 | F 23456 | 158 | 11 | 7 | 574 |
3 | J1234 6 | K 456 | L123456 | 1458 | 2 | 0.45 | 1 |
我可以用熊貓讀取這個文件嗎?
我們可以使用pd.read_fwf
來“將固定寬度格式化行的表格讀入 DataFrame”
df = pd.read_fwf('data.txt', colspecs='infer', header=None)
df
:
0 1 2 3
0 A123456 B123456 C123456 12 158 325 0 14
1 D123456 E123456 F123456 1 147 23 711 0
2 G1 3456 H123456 F 23456 158 11 7 574 12589
3 J1234 6 K 456 L123456 1458 2 0.45 1 78
如果框架的其余部分要以空格分隔,則第3
列可以在空格上進行str.split
:
df = pd.read_fwf('data.txt', colspecs='infer', header=None)
# Replace 3 with new columns
df = df.drop(3, axis=1).join(df[3].str.split(expand=True), rsuffix='_x')
# Rename columns
df.columns = range(len(df.columns))
df
:
0 1 2 3 4 5 6 7
0 A123456 B123456 C123456 12 158 325 0 14
1 D123456 E123456 F123456 1 147 23 711 0
2 G1 3456 H123456 F 23456 158 11 7 574 12589
3 J1234 6 K 456 L123456 1458 2 0.45 1 78
data.txt
:
A123456 B123456 C123456 12 158 325 0 14
D123456 E123456 F123456 1 147 23 711 0
G1 3456 H123456 F 23456 158 11 7 574 12589
J1234 6 K 456 L123456 1458 2 0.45 1 78
您可以使用以下任何一種:-
data = pd.read_csv('data.txt',
sep=";|:|,",
header=None,
engine='python')
或者使用read_fwf
df = pd.read_fwf('data.txt', colspecs='infer', header=None)
這將在新列中寫入每個值。 希望這會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.