Python:使用 pandas 打开 txt 时保持前导零
Python: Keeping leading zeros when open txt with pandas
我有这个 txt 文件:
Tu 11:44:00 119 52913161 DETECTOR STATE 0001
Tu 11:44:00 119 52913161 DETECTOR STATE 1100
Tu 11:44:02 119 52913161 DETECTOR STATE 0000
Tu 11:44:02 119 52913161 DETECTOR STATE 1110
Tu 11:44:04 119 52913161 DETECTOR STATE 0000
Tu 11:44:04 119 52913161 DETECTOR STATE 0011
我使用以下代码在 Python (Jupyter Notebook) 中打开:
import pandas as pd
data= pd.read_csv('EXPORT20171205114501_1.txt', sep=" ", header=None)
data.columns = ["day", "time", "street", "sensor", "type", "state", "bits"]
我得到这个输出:
day time street sensor type state bits
0 Tu 11:44:00 119 52913161 DETECTOR STATE 1
1 Tu 11:44:00 119 52913161 DETECTOR STATE 1100
2 Tu 11:44:02 119 52913161 DETECTOR STATE 0
3 Tu 11:44:02 119 52913161 DETECTOR STATE 1110
4 Tu 11:44:04 119 52913161 DETECTOR STATE 0
5 Tu 11:44:04 119 52913161 DETECTOR STATE 11
如何保留前导零?
我尝试了以下选项:
data = pd.read_csv('EXPORT20171205114501_1.txt', sep=" ", header=None, dtype={'column': object})
data = pd.read_csv('EXPORT20171205114501_1.txt', sep=" ", header=None).astype(str)
data = pd.read_csv('EXPORT20171205114501_1.txt', sep=" ", header=None, converters={'ColName': str})
None 以上选项有效。我已经将 pandas 更新到最新版本。有什么想法吗?
按列表使用参数名称作为列名称,然后可以通过 dtype
参数和 dictionary
:
定义要解析为 string
的列
names = ["day", "time", "street", "sensor", "type", "state", "bits"]
df = pd.read_csv('EXPORT20171205114501_1.txt', sep="\s+", names=names, dtype={'bits':str})
print (df)
day time street sensor type state bits
0 Tu 11:44:00 119 52913161 DETECTOR STATE 0001
1 Tu 11:44:00 119 52913161 DETECTOR STATE 1100
2 Tu 11:44:02 119 52913161 DETECTOR STATE 0000
3 Tu 11:44:02 119 52913161 DETECTOR STATE 1110
4 Tu 11:44:04 119 52913161 DETECTOR STATE 0000
5 Tu 11:44:04 119 52913161 DETECTOR STATE 0011
如果需要所有列作为字符串:
names = ["day", "time", "street", "sensor", "type", "state", "bits"]
df = pd.read_csv('EXPORT20171205114501_1.txt', sep="\s+", names=names, dtype=str)
print (df)
day time street sensor type state bits
0 Tu 11:44:00 119 52913161 DETECTOR STATE 0001
1 Tu 11:44:00 119 52913161 DETECTOR STATE 1100
2 Tu 11:44:02 119 52913161 DETECTOR STATE 0000
3 Tu 11:44:02 119 52913161 DETECTOR STATE 1110
4 Tu 11:44:04 119 52913161 DETECTOR STATE 0000
5 Tu 11:44:04 119 52913161 DETECTOR STATE 0011
我有这个 txt 文件:
Tu 11:44:00 119 52913161 DETECTOR STATE 0001
Tu 11:44:00 119 52913161 DETECTOR STATE 1100
Tu 11:44:02 119 52913161 DETECTOR STATE 0000
Tu 11:44:02 119 52913161 DETECTOR STATE 1110
Tu 11:44:04 119 52913161 DETECTOR STATE 0000
Tu 11:44:04 119 52913161 DETECTOR STATE 0011
我使用以下代码在 Python (Jupyter Notebook) 中打开:
import pandas as pd
data= pd.read_csv('EXPORT20171205114501_1.txt', sep=" ", header=None)
data.columns = ["day", "time", "street", "sensor", "type", "state", "bits"]
我得到这个输出:
day time street sensor type state bits
0 Tu 11:44:00 119 52913161 DETECTOR STATE 1
1 Tu 11:44:00 119 52913161 DETECTOR STATE 1100
2 Tu 11:44:02 119 52913161 DETECTOR STATE 0
3 Tu 11:44:02 119 52913161 DETECTOR STATE 1110
4 Tu 11:44:04 119 52913161 DETECTOR STATE 0
5 Tu 11:44:04 119 52913161 DETECTOR STATE 11
如何保留前导零?
我尝试了以下选项:
data = pd.read_csv('EXPORT20171205114501_1.txt', sep=" ", header=None, dtype={'column': object})
data = pd.read_csv('EXPORT20171205114501_1.txt', sep=" ", header=None).astype(str)
data = pd.read_csv('EXPORT20171205114501_1.txt', sep=" ", header=None, converters={'ColName': str})
None 以上选项有效。我已经将 pandas 更新到最新版本。有什么想法吗?
按列表使用参数名称作为列名称,然后可以通过 dtype
参数和 dictionary
:
string
的列
names = ["day", "time", "street", "sensor", "type", "state", "bits"]
df = pd.read_csv('EXPORT20171205114501_1.txt', sep="\s+", names=names, dtype={'bits':str})
print (df)
day time street sensor type state bits
0 Tu 11:44:00 119 52913161 DETECTOR STATE 0001
1 Tu 11:44:00 119 52913161 DETECTOR STATE 1100
2 Tu 11:44:02 119 52913161 DETECTOR STATE 0000
3 Tu 11:44:02 119 52913161 DETECTOR STATE 1110
4 Tu 11:44:04 119 52913161 DETECTOR STATE 0000
5 Tu 11:44:04 119 52913161 DETECTOR STATE 0011
如果需要所有列作为字符串:
names = ["day", "time", "street", "sensor", "type", "state", "bits"]
df = pd.read_csv('EXPORT20171205114501_1.txt', sep="\s+", names=names, dtype=str)
print (df)
day time street sensor type state bits
0 Tu 11:44:00 119 52913161 DETECTOR STATE 0001
1 Tu 11:44:00 119 52913161 DETECTOR STATE 1100
2 Tu 11:44:02 119 52913161 DETECTOR STATE 0000
3 Tu 11:44:02 119 52913161 DETECTOR STATE 1110
4 Tu 11:44:04 119 52913161 DETECTOR STATE 0000
5 Tu 11:44:04 119 52913161 DETECTOR STATE 0011