目前,我正在使用:
csvdata.update(data, overwrite=True)
我如何使它更新和覆盖一个特定的列,而不是另一个小但简单的问题,有一个简单的答案吗?
发布于 2013-11-20 15:35:08
与其使用整个DataFrame进行更新,不如使用您感兴趣的列的subDataFrame进行更新。例如:
In [11]: df1
Out[11]:
A B
0 1 99
1 3 99
2 5 6
In [12]: df2
Out[12]:
A B
0 a 2
1 b 4
2 c 6
In [13]: df1.update(df2[['B']]) # subset of cols = ['B']
In [14]: df1
Out[14]:
A B
0 1 2
1 3 4
2 5 6
发布于 2013-11-20 15:36:30
如果要对单个列执行此操作:
import pandas
import numpy
csvdata = pandas.DataFrame({"a":range(12), "b":range(12)})
other = pandas.Series(list("abcdefghijk")+[numpy.nan])
csvdata["a"].update(other)
print csvdata
a b
0 a 0
1 b 1
2 c 2
3 d 3
4 e 4
5 f 5
6 g 6
7 h 7
8 i 8
9 j 9
10 k 10
11 11 11
或者,只要列名匹配,就可以这样做:
other = pandas.DataFrame({"a":list("abcdefghijk")+[numpy.nan], "b":list("abcdefghijk")+[numpy.nan]})
csvdata.update(other["a"])
https://stackoverflow.com/questions/20108880
复制相似问题