相关疑难解决方法(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 csv-import:在列中保持前导零

我正在使用研究数据导入Pandas数据框read_csv.

我的主题代码是6个数字编码,其中包括出生日期.对于我的一些主题,这导致具有前导零的代码(例如"010816").

当我导入Pandas时,前导零被剥离,列被格式化为int64.

有没有办法可以将此列导入为字符串?

我尝试为列使用自定义转换器,但它不起作用 - 好像自定义转换发生在Pandas转换为int之前.

python types pandas import-csv

41
推荐指数
5
解决办法
3万
查看次数

熊猫读csv作为字符串类型

我有一个带字母数字键的数据框,我想将其保存为csv并稍后再读回.由于各种原因,我需要明确地将此键列作为字符串格式读取,我有严格数字或更糟糕的键,如:1234E5,Pandas将其解释为浮点数.这显然使得密钥完全没用.

问题是,当我为数据框或其任何列指定字符串dtype时,我只是回垃圾.我在这里有一些示例代码:

df = pd.DataFrame(np.random.rand(2,2),
                  index=['1A', '1B'],
                  columns=['A', 'B'])
df.to_csv(savefile)
Run Code Online (Sandbox Code Playgroud)

数据框看起来像:

           A         B
1A  0.209059  0.275554
1B  0.742666  0.721165
Run Code Online (Sandbox Code Playgroud)

然后我就这样读了:

df_read = pd.read_csv(savefile, dtype=str, index_col=0)
Run Code Online (Sandbox Code Playgroud)

结果是:

   A  B
B  (  <
Run Code Online (Sandbox Code Playgroud)

这是我的电脑的问题,或者我在这里做错了什么,或者只是一个错误?

python pandas

31
推荐指数
3
解决办法
6万
查看次数

numpy recarray可变长度的字符串

是否可以初始化一个将保持字符串的numpy重新排列,而不事先知道字符串的长度?

作为一个(人为的)例子:

mydf = np.empty( (numrows,), dtype=[ ('file_name','STRING'), ('file_size_MB',float) ] )
Run Code Online (Sandbox Code Playgroud)

问题是我在用信息填充之前构建我的recarray,我不一定知道file_name提前的最大长度.

我的所有尝试都会导致字符串字段被截断:

>>> mydf = np.empty( (2,), dtype=[('file_name',str),('file_size_mb',float)] )
>>> mydf['file_name'][0]='foobarasdf.tif'
>>> mydf['file_name'][1]='arghtidlsarbda.jpg'
>>> mydf
array([('', 6.9164002347457e-310), ('', 9.9413127e-317)], 
      dtype=[('file_name', 'S'), ('file_size_mb', '<f8')])
>>> mydf['file_name']
array(['f', 'a'], 
      dtype='|S1')
Run Code Online (Sandbox Code Playgroud)

(顺便说mydf['file_name']一句,为什么显示'f'和'a'同时mydf显示''和''?)

同样,如果我用型(比如说)初始化|S10file_name这种事情会在长度10截断.

我能找到的唯一类似的问题就是这个问题,但是这会先验地计算出合适的字符串长度,因此与我的字符串长度并不完全相同(因为我事先并不知道).

除了初始化file_name(例如)|S9999999999999(即一些荒谬的上限)之外,还有其他选择吗?

python numpy recarray

17
推荐指数
1
解决办法
7331
查看次数

Python:如何使用dataframe.to_csv保持前导零

从txt文件读取数据后,有一个如下所示的数据帧(df1):

 name   l1     l2
  a    00000  00000 
  b    00010  00002
  c    00000  01218
Run Code Online (Sandbox Code Playgroud)

当我如下使用python代码时:

dataframe.to_csv('test.csv', index= False)
Run Code Online (Sandbox Code Playgroud)

然后,我使用以下代码来阅读:

  df = pd.read_csv('test.csv')
Run Code Online (Sandbox Code Playgroud)

我发现数据框如下所示是df2

       name   l1      l2
        a      0       0
        b     10       2
        c      0      1218
Run Code Online (Sandbox Code Playgroud)

但是我想像df1一样在数据帧中保留前导零。

谢谢!

csv dataframe python-2.7 pandas

2
推荐指数
1
解决办法
3809
查看次数

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
查看次数