相关疑难解决方法(0)

更改Pandas中列的数据类型

我想将表格(表示为列表列表)转换为Pandas DataFrame.作为一个极其简化的例子:

a = [['a', '1.2', '4.2'], ['b', '70', '0.03'], ['x', '5', '0']]
df = pd.DataFrame(a)
Run Code Online (Sandbox Code Playgroud)

将列转换为适当类型的最佳方法是什么,在这种情况下,将第2列和第3列转换为浮点数?有没有办法在转换为DataFrame时指定类型?或者最好先创建DataFrame,然后循环遍历列以更改每列的类型?理想情况下,我想以动态方式执行此操作,因为可能有数百列,我不想确切地指定哪些列属于哪种类型.我可以保证的是,每列包含相同类型的值.

python types casting dataframe pandas

688
推荐指数
11
解决办法
132万
查看次数

pandas iloc vs ix vs loc解释; 他们有什么不同?

有人能解释这三种切片方法有何不同?
我已经看过这些文档了,我已经看到了这些 答案,但我仍然发现自己无法解释三者是如何不同的.对我来说,它们在很大程度上似乎是可以互换的,因为它们处于较低的切片水平.

例如,假设我们想获得a的前五行DataFrame.这三个都是如何运作的?

df.loc[:5]
df.ix[:5]
df.iloc[:5]
Run Code Online (Sandbox Code Playgroud)

有人可以提出三种情况,其中使用的区别更清晰吗?

python indexing dataframe pandas

574
推荐指数
3
解决办法
42万
查看次数

使用索引为pandas DataFrame中的特定单元格设置值


我已经创建了一个pandas DataFrame

df = DataFrame(index=['A','B','C'], columns=['x','y'])
Run Code Online (Sandbox Code Playgroud)

得到了这个

    x    y
A  NaN  NaN
B  NaN  NaN
C  NaN  NaN


然后我想为特定单元格赋值,例如行'C'和列'x'.我期望得到这样的结果:

    x    y
A  NaN  NaN
B  NaN  NaN
C  10  NaN

使用此代码:

df.xs('C')['x'] = 10
Run Code Online (Sandbox Code Playgroud)

但是df的内容没有改变.在数据帧中它只是Nan的.

有什么建议?

python dataframe pandas

396
推荐指数
17
解决办法
69万
查看次数

在pandas中一起使用loc和iloc

说我有以下的数据帧,我想改变列的两个元素c是对应于列前两个元素a是等于1平等2.

>>> df = pd.DataFrame({"a" : [1,1,1,1,2,2,2,2], "b" : [2,3,1,4,5,6,7,2], "c" : [1,2,3,4,5,6,7,8]})
>>> df.loc[df["a"] == 1, "c"].iloc[0:2] = 2
>>> df
   a  b  c
0  1  2  1
1  1  3  2
2  1  1  3
3  1  4  4
4  2  5  5
5  2  6  6
6  2  7  7
7  2  2  8
Run Code Online (Sandbox Code Playgroud)

第二行中的代码不起作用,因为iloc设置了副本,因此不修改原始数据帧.我该怎么做?

python indexing dataframe pandas

9
推荐指数
2
解决办法
4373
查看次数

标签 统计

dataframe ×4

pandas ×4

python ×4

indexing ×2

casting ×1

types ×1