所以我仍然在经历熊猫,在做这件事上有点小麻烦
数据集1
Sample Age Tumor Location
3 31 Benign Lung
8 45 Malignant Heart
9 44 Malignant Heart数据集2
Sample Age Tumor Location
3 None None None
8 None None None
9 None None None 我想要做的是根据示例列将数据从数据集1移动到数据集2,以便正确映射它
就像这样
数据集2
Sample Age Tumor Location
3 31 Benign Lung
8 45 Malignant Heart
9 44 Malignant Heart我似乎还找不到这样的例子。而不是将两者合并成一个新的数据帧?
发布于 2018-08-28 10:01:06
使用update并假设'Sample'是map的唯一键
df2=df2.set_index('Sample')
df2.update(df1.set_index('Sample'))
df2.reset_index(inplace=True)
df2
Out[1046]:
Sample Age Tumor Location
0 3 31 Benign Lung
1 8 45 Malignant Heart
2 9 44 Malignant Heart发布于 2018-08-28 10:11:15
您可以使用loc (docs)根据放置在行上的条件来设置列。下面是一个示例:
#Setup
import pandas as pd
dataset_1 = {
'Sample': [3, 8, 9],
'Age': [31, 45, 44],
'Tumor': ['Benign', 'Malignant', 'Malignant'],
'Location': ['Lung', 'Heart', 'Heart']
}
dataset_2 = {
'Sample': [3, 8, 9],
'Age': [None, None, None],
'Tumor': [None, None, None],
'Location': [None, None, None]
}
df_1 = pd.DataFrame(dataset_1)
df_2 = pd.DataFrame(dataset_2)
print(df_1)
print(df_2)以下哪项输出:
Age Location Sample Tumor
0 31 Lung 3 Benign
1 45 Heart 8 Malignant
2 44 Heart 9 Malignant
Age Location Sample Tumor
0 None None 3 None
1 None None 8 None
2 None None 9 None这就是如何使用loc将列设置为相等,其中某列的行与另一列的行相等。在本例中,被比较的列是两个数据帧的Sample列:
df_2.loc[df_2.Sample == df_1.Sample, :] = df_1
print(df_1)
print(df_2)这就给我们提供了:
Age Location Sample Tumor
0 31 Lung 3 Benign
1 45 Heart 8 Malignant
2 44 Heart 9 Malignant
Age Location Sample Tumor
0 31 Lung 3 Benign
1 45 Heart 8 Malignant
2 44 Heart 9 Malignant我希望这就是你要找的。祝好运!
https://stackoverflow.com/questions/52048968
复制相似问题