简单实用的问题,但我无法找到解决方案。
我看过的问题如下:
Modifying a subset of rows in a pandas dataframe
Changing certain values in multiple columns of a pandas DataFrame at once
Fastest way to copy columns from one DataFrame to another using pandas?
Selecting with complex criteria from pandas.DataFrame
我和我之间的关键区别是我不需要插入一个值,而是一行。
我的问题是,我拿起一行数据帧,比如df1
。因此,我有一个系列。
现在我有了另一个数据框df2
,我已根据条件选择了多行,并且我希望将该系列复制到所有这些行。
DF1:
Index/Col A B C
1 0 0 0
2 0 0 0
3 1 2 3
4 0 0 0
DF2:
Index/Col A B C
1 0 0 0
2 0 0 0
3 0 0 0
4 0 0 0
我想要完成的是将df1 [3]插入到行df2 [2]和df3 [3]中。所以像非工作代码:
series = df1[3]
df2[df2.index>=2 and df2.index<=3] = series
返回
DF2:
Index/Col A B C
1 0 0 0
2 1 2 3
3 1 2 3
4 0 0 0
答案 0 :(得分:11)
使用:
并传递感兴趣的索引标签列表,在以下逗号后.values
表示我们要设置所有列值,然后我们分配系列但调用属性{{1所以它是一个numpy数组。否则你会得到一个ValueError
因为你打算用一行覆盖2行,如果它是一个Series
,那么就会出现形状不匹配,那么它就不会按你的意愿对齐:< / p>
In [76]:
df2.loc[[2,3],:] = df1.loc[3].values
df2
Out[76]:
A B C
1 0 0 0
2 1 2 3
3 1 2 3
4 0 0 0
答案 1 :(得分:1)
假设您必须将某些行和列从数据框复制到另一个数据框执行此操作。
code
df2 = df.loc[x:y,a:b] // x and y are rows bound and a and b are column
bounds that you have to select