![](/img/trans.png)
[英]How to create a pandas dataframe containing columns with special characters?
[英]How to separate columns with special characters in Pandas, Python
我的數據文件包含一些無法從鍵盤定義為分隔符的字符。 反正有沒有以正確的方式讀取這些數據。
我的數據在.txt 文件中看起來不同,但是當我粘貼到這里時,它看起來像:
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
PW 100 2000 2000 C 0 0 0 0.00 0.00 0
但我也在這里附上了原始數據data 。
要讀取數據,我只是嘗試了這種方式:
import pandas as pd
pd.read_table('data.txt',sep = '\s+')
有更好的方法嗎?
您必須從不可見的字符中刪除文件:
import pandas as pd
import io
import re
with open('pwd_data.txt') as fp:
buffer = io.StringIO(re.sub('[\01-\03]', '', fp.read()))
df = pd.read_table(buffer, header=None, sep='\s+')
Output:
>>> df
0 1 2 3 4 5 6 7 8 9 10
0 PW 100 2000 2000 C 0 0 0 0.0 0.0 0
1 PW 100 2000 2000 C 0 0 0 0.0 0.0 0
2 PW 100 2000 2000 C 0 0 0 0.0 0.0 0
...
32 PW 100 2000 2000 C 0 0 0 0.0 0.0 0
33 PW 100 2000 2000 C 0 0 0 0.0 0.0 0
34 PW 100 2000 2000 C 0 0 0 0.0 0.0 0
>>> df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 35 entries, 0 to 34
Data columns (total 11 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 0 35 non-null object
1 1 35 non-null int64
2 2 35 non-null int64
3 3 35 non-null int64
4 4 35 non-null object
5 5 35 non-null int64
6 6 35 non-null int64
7 7 35 non-null int64
8 8 35 non-null float64
9 9 35 non-null float64
10 10 35 non-null int64
dtypes: float64(2), int64(7), object(2)
memory usage: 3.1+ KB
嘗試將您的 sep 更改為r'[\s+\x00-\x19]'
pd.read_table('data.txt',sep = r'[\s+\x00-\x19]')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.