在python/numpy中是否有任何bulid-in函数可以转换为array = [1, 3, 1, 2]这样的东西:
array = [[0, 1, 0, 0],
[0, 0, 0, 1],
[0, 1, 0, 0],
[0, 0, 1, 0]]
Run Code Online (Sandbox Code Playgroud) 我有以下格式的数据:
8A564 nan json
8A928 nan json
8A563 nan json
8A564 10616280 json
8A563 10616222 json
8A564 nan json
8B1BB 10982483 json
8A564 10616280 json
Run Code Online (Sandbox Code Playgroud)
我想在第二列中填充数据以匹配具有相同第一列且第二个非空值的行。所以我会得到以下信息:
8A564 10616280 json
8A928 nan json
8A563 10616222 json
8A564 10616280 json
8A563 10616222 json
8A564 10616280 json
8B1BB 10982483 json
8A564 10616280 json
Run Code Online (Sandbox Code Playgroud)
如何实现?
我有下表。一些值为NaN。让我们假设列是高度相关的。以row 0和row 5我说,在这个值col2会4.0。row 1和的情况相同row 4。但是,在这种情况下row 6,没有完美匹配的样本,因此在这种情况下,我应该选择最相似的行,row 0并将NaN更改为3.0。我应该如何处理?有任何熊猫功能可以做到这一点吗?
example = pd.DataFrame({"col1": [3, 2, 8, 4, 2, 3, np.nan],
"col2": [4, 3, 6, np.nan, 3, np.nan, 5],
"col3": [7, 8, 9, np.nan, np.nan, 7, 7],
"col4": [7, 8, 9, np.nan, np.nan, 7, 6]})
Run Code Online (Sandbox Code Playgroud)
输出:
col1 col2 col3 col4
0 3.0 4.0 7.0 7.0
1 2.0 3.0 8.0 8.0
2 8.0 6.0 9.0 9.0
3 …Run Code Online (Sandbox Code Playgroud)