Jef*_*lin 3 python dataframe pandas
对于这个基本数据帧,我想将行设置为等于其他行.我一次做这一行没有问题:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 5))
df.loc[6,:] = df.loc[4,:]
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试为多行执行此操作时,它们被设置为NaN而不是我引用的行:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 5))
df.loc[5:6,:] = df.loc[3:4,:]
Run Code Online (Sandbox Code Playgroud)
我已阅读文档,无法找到解释.有任何想法吗?谢谢.
Pandas将始终尝试根据索引对齐数据.将一个DataFrame分配给另一个DataFrame时,它会尝试根据索引而不是顺序行号来匹配数据.
因此,当您分配到第5-6行时,它会在分配的数据中查找带有这些索引标签的行 - 也就是说,它会查找索引为5和6的行.由于传入的数据没有任何行这样的行(因为你只传入了一个包含第3行和第4行的切片),它找不到任何匹配的数据,所以它放入NaN.
要分配"原始"值,忽略索引,您可以这样做df.loc[5:6,:] = df.loc[3:4,:].values.
| 归档时间: |
|
| 查看次数: |
3315 次 |
| 最近记录: |