相关疑难解决方法(0)

将pandas dataframe列导入为字符串而不是int

我想将以下csv导入为字符串而不是int64.Pandas read_csv自动将其转换为int64,但我需要将此列作为字符串.

ID
00013007854817840016671868
00013007854817840016749251
00013007854817840016754630
00013007854817840016781876
00013007854817840017028824
00013007854817840017963235
00013007854817840018860166


df = read_csv('sample.csv')

df.ID
>>

0   -9223372036854775808
1   -9223372036854775808
2   -9223372036854775808
3   -9223372036854775808
4   -9223372036854775808
5   -9223372036854775808
6   -9223372036854775808
Name: ID
Run Code Online (Sandbox Code Playgroud)

不幸的是使用转换器会产生相同的结

df = read_csv('sample.csv', converters={'ID': str})
df.ID
>>

0   -9223372036854775808
1   -9223372036854775808
2   -9223372036854775808
3   -9223372036854775808
4   -9223372036854775808
5   -9223372036854775808
6   -9223372036854775808
Name: ID
Run Code Online (Sandbox Code Playgroud)

python pandas

77
推荐指数
3
解决办法
10万
查看次数

Pandas read_csv dtype前导零

所以我正在阅读NOAA的电台代码csv文件,如下所示:

"USAF","WBAN","STATION NAME","CTRY","FIPS","STATE","CALL","LAT","LON","ELEV(.1M)","BEGIN","END"
"006852","99999","SENT","SW","SZ","","","+46817","+010350","+14200","",""
"007005","99999","CWOS 07005","","","","","-99999","-999999","-99999","20120127","20120127"
Run Code Online (Sandbox Code Playgroud)

前两列包含气象站的代码,有时它们有前导零.当pandas在没有指定dtype的情况下导入它们时,它们会变成整数.这并不是什么大不了的事,因为我可以遍历数据框索引并用类似的东西替换它们,"%06d" % i因为它们总是六位数,但是你知道......这就是懒人的方式.

使用以下代码获取csv:

file = urllib.urlopen(r"ftp://ftp.ncdc.noaa.gov/pub/data/inventories/ISH-HISTORY.CSV")
output = open('Station Codes.csv','wb')
output.write(file.read())
output.close()
Run Code Online (Sandbox Code Playgroud)

这一切都很好,但当我去尝试阅读它使用这个:

import pandas as pd
df = pd.io.parsers.read_csv("Station Codes.csv",dtype={'USAF': np.str, 'WBAN': np.str})
Run Code Online (Sandbox Code Playgroud)

要么

import pandas as pd
df = pd.io.parsers.read_csv("Station Codes.csv",dtype={'USAF': str, 'WBAN': str})
Run Code Online (Sandbox Code Playgroud)

我收到一条令人讨厌的错误消息:

File "C:\Python27\lib\site-packages\pandas-0.11.0-py2.7-win32.egg\pandas\io\parsers.py", line 401, in parser
_f
    return _read(filepath_or_buffer, kwds)
  File "C:\Python27\lib\site-packages\pandas-0.11.0-py2.7-win32.egg\pandas\io\parsers.py", line 216, in _read
    return parser.read()
  File "C:\Python27\lib\site-packages\pandas-0.11.0-py2.7-win32.egg\pandas\io\parsers.py", line 633, in read
    ret = self._engine.read(nrows)
  File "C:\Python27\lib\site-packages\pandas-0.11.0-py2.7-win32.egg\pandas\io\parsers.py", line 957, in read
    data …
Run Code Online (Sandbox Code Playgroud)

python csv string pandas

7
推荐指数
3
解决办法
1万
查看次数

How to save a CSV from dataframe, to keep zeros left in column with numbers?

In Python 3 and pandas I have a dataframe with a column cpf with codes

candidatos_2014.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 26245 entries, 0 to 1063
Data columns (total 7 columns):
uf                 26245 non-null object
cargo              26245 non-null object
nome_completo      26245 non-null object
cpf                26245 non-null object
nome_urna          26245 non-null object
partido_eleicao    26245 non-null object
situacao           26245 non-null object
dtypes: object(7)
memory usage: 1.6+ MB
Run Code Online (Sandbox Code Playgroud)

The codes are numbers like these: "00229379273", "84274662268", "09681949153", "53135636534"...

I saved as CSV

candidatos_2014.to_csv('candidatos_2014.csv')
Run Code Online (Sandbox Code Playgroud)

我使用Ubuntu和LibreOffice。但是当我打开文件时,cpf …

python csv pandas

6
推荐指数
1
解决办法
4354
查看次数

Python:用熊猫打开txt时保持前导零

我有这个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
Run Code Online (Sandbox Code Playgroud)

我使用以下代码在 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"]
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

    day time    street  sensor  type    state   bits
0   Tu  11:44:00    119 52913161    DETECTOR    STATE      1 …
Run Code Online (Sandbox Code Playgroud)

python text-files dataframe pandas leading-zero

0
推荐指数
1
解决办法
2846
查看次数

标签 统计

pandas ×4

python ×4

csv ×2

dataframe ×1

leading-zero ×1

string ×1

text-files ×1