如何用 pandas 中的另一个数据框列替换子集列?
How to replace a subset column with another dataframe column in pandas?
已经有人问过这个问题,但我以正确的方式尝试了它,但不知何故我得到了意想不到的结果。
我有两个数据框 data
和 dky
有很多列。
代码,
data.loc[(data['source'] == 'DKY_2016'), 'seconds']
returns:
1147 22.80
1154 44.90
1160 45.00
1161 58.35
1162 2.45
我想用 dky['seconds']
替换上述列,其中包含:
0 41.22
1 22.80
2 44.90
3 45.00
4 58.35
我尝试了以下代码 data.loc[(data['source'] == 'DKY_2016'), 'seconds'] = dky['seconds']
。
但它只给出 NaN
作为输出列
1147 NaN
1154 NaN
1160 NaN
1161 NaN
1162 NaN
我这里做错了什么?
这是因为索引。如您所见,dky['seconds']
的索引为 0 1 2 3 4
。另一方面,data.loc[(data['source'] == 'DKY_2016'), 'seconds']
的索引为 1147 1154 1160 1161 1162
。由于这两个不同,pandas 不会将一个分配给另一个。
相反,您需要先将要分配的数据转换为列表,这样它就没有索引:
data.loc[(data['source'] == 'DKY_2016'), 'seconds'] = dky['seconds'].values.tolist()
已经有人问过这个问题,但我以正确的方式尝试了它,但不知何故我得到了意想不到的结果。
我有两个数据框 data
和 dky
有很多列。
代码,
data.loc[(data['source'] == 'DKY_2016'), 'seconds']
returns:
1147 22.80
1154 44.90
1160 45.00
1161 58.35
1162 2.45
我想用 dky['seconds']
替换上述列,其中包含:
0 41.22
1 22.80
2 44.90
3 45.00
4 58.35
我尝试了以下代码 data.loc[(data['source'] == 'DKY_2016'), 'seconds'] = dky['seconds']
。
但它只给出 NaN
作为输出列
1147 NaN
1154 NaN
1160 NaN
1161 NaN
1162 NaN
我这里做错了什么?
这是因为索引。如您所见,dky['seconds']
的索引为 0 1 2 3 4
。另一方面,data.loc[(data['source'] == 'DKY_2016'), 'seconds']
的索引为 1147 1154 1160 1161 1162
。由于这两个不同,pandas 不会将一个分配给另一个。
相反,您需要先将要分配的数据转换为列表,这样它就没有索引:
data.loc[(data['source'] == 'DKY_2016'), 'seconds'] = dky['seconds'].values.tolist()