我有一个带字母数字键的数据框,我想将其保存为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)
这是我的电脑的问题,或者我在这里做错了什么,或者只是一个错误?
我正在使用PIL在Python中进行一些图像处理,我需要从一系列图像中提取亮度层,并使用numpy对它进行一些处理,然后将编辑后的亮度层放回图像中并保存。问题是,我似乎无法获得YCbCr格式的图像的任何有意义的表示,或者至少我不了解PIL在YCbCr中给了我什么。PIL文档声称YCbCr格式提供了三个通道,但是当我使用np.asarray从图像中获取数据时,我获得了4个通道。好的,所以我认为其中一个必须为alpha。
这是我用来测试此过程的一些代码:
import Image as im
import numpy as np
pengIm = im.open("Data\\Test\\Penguins.bmp")
yIm = pengIm.convert("YCbCr")
testIm = np.asarray(yIm)
grey = testIm[:,:,0]
grey = grey.astype('uint8')
greyIm = im.fromarray(grey, "L")
greyIm.save("Data\\Test\\grey.bmp")
Run Code Online (Sandbox Code Playgroud)
我期望图像的灰度版本,但是我得到的是这个混乱的混乱:
有人可以向我解释我要去哪里哪里吗?matlab中的相同代码完全符合我的预期。