因此,我已经尽我所能来使此功能正常运行,并且在这一点上似乎令人沮丧。
这里是问题:
Age Complete Location Sample Sample Type Tumor
0 None True None None None None
1 None True None None None None
2 None True None None None None
3 None True None None None None
4 None True None None None None
5 None True None None None None
6 None True None None None None
7 None True None None None None
8 None True None None None None
9 None True None None None None
这是我的空数据框,其中填充了None类型的对象。
以下是我从CSV中读取的数据,并按“样本类型”分组了
Age Complete Location Sample Sample Type Tumor
0 43 True LUNG 1 Blood Benign
2 12 True LUNG 3 Blood Benign
4 32 True LUNG 5 Blood Malignant
6 13 True LUNG 7 Blood Malignant
7 53 True HEART 8 Blood Malignant
1 23 True LUNG 2 FFPE Benign
3 54 True LUNG 4 FFPE Benign
5 53 True LUNG 6 FFPE Malignant
8 123 True HEART 9 FFPE Benign
9 43 True HEART 10 FFPE Benign
我希望完成的是以一种优雅的方式用第二个数据帧中的值更新第一个数据帧的值,从而使一个数据帧的输出看起来像。
Age Complete Location Sample Sample Type Tumor
0 43 True LUNG 1 Blood Benign
2 12 True LUNG 3 Blood Benign
4 32 True LUNG 5 Blood Malignant
6 13 True LUNG 7 Blood Malignant
7 53 True HEART 8 Blood Malignant
1 23 True LUNG 2 FFPE Benign
3 54 True LUNG 4 FFPE Benign
5 53 True LUNG 6 FFPE Malignant
8 123 True HEART 9 FFPE Benign
9 43 True HEART 10 FFPE Benign
我尝试过的事情并没有达到我想要的结果
删除列,然后将其重新添加到数据框1中,这给了我未证明有用的非分组值
使用
pd.concat([dataframe 1, data frame 2], axis=1)
它返回了非组对象类型
Age Complete Location Sample Sample Type Tumor \
0 43 True LUNG 1 Blood Benign
1 23 True LUNG 2 FFPE Benign
2 12 True LUNG 3 Blood Benign
3 54 True LUNG 4 FFPE Benign
4 32 True LUNG 5 Blood Malignant
5 53 True LUNG 6 FFPE Malignant
6 13 True LUNG 7 Blood Malignant
7 53 True HEART 8 Blood Malignant
8 123 True HEART 9 FFPE Benign
9 43 True HEART 10 FFPE Benign
我也做了.join,但是它无法将None与数据帧2中的对象值进行比较来设置它们?
我能做的最好的工作是遍历列和行并逐个更新每个单元格。
有人有什么想法吗?
答案 0 :(得分:0)
我认为您可以迭代所有列并一一更新。 因此,您拥有原始数据帧df_1和来自csv df_csv的读取数据帧。
for col in df_1.columns.tolist():
df_1[col] = df_csv[col]
这样,您可以将df_1中的所有列替换为df_csv中的值。
答案 1 :(得分:0)
您不必更新第一个数据框,因为第二个数据框已经看起来像您想要的输出。