Python Pandas set_value将显示整个数据帧

时间:2016-04-07 14:45:59

标签: python pandas

我只想更改数据框中特定单元格中的值,然后使用set_value。但是,每次我使用set_value时,它都会列出整个数据帧一次。由于数据帧具有较大的大小(超过1000万行),因此该过程将浪费能量和时间。 平台:Spyder(Python 2.7)

感谢建议!

2 个答案:

答案 0 :(得分:1)

是你想要的吗?

In [69]: df
Out[69]:
   a  b  c
0  8  6  2
1  9  9  6
2  1  7  9
3  9  0  6
4  0  6  7
5  9  3  4
6  4  6  5
7  8  3  4
8  0  8  9
9  7  2  8

In [70]: df.ix[5, 'a'] = 100

In [71]: df
Out[71]:
     a  b  c
0    8  6  2
1    9  9  6
2    1  7  9
3    9  0  6
4    0  6  7
5  100  3  4
6    4  6  5
7    8  3  4
8    0  8  9
9    7  2  8

而不是:

In [72]: df.set_value(9, 'a', 100)
Out[72]:
     a  b  c
0    8  6  2
1    9  9  6
2    1  7  9
3    9  0  6
4    0  6  7
5  100  3  4
6    4  6  5
7    8  3  4
8    0  8  9
9  100  2  8

你也可以这样做:

In [73]: df = df.set_value(9, 'a', 100)

答案 1 :(得分:1)

set_value非常快。交互式会话的长时间是准备输出的时间。

In [130]: %timeit u.set_value(0,0,3)
10000 loops, best of 3: 41.9 µs per loop

In [131]: %timeit u.ix[0,0]=2
1000 loops, best of 3: 745 µs per loop

第二种方法阻止显示。