我对python比较陌生,我觉得这是一项复杂的任务
来自dfa: 我试图返回一系列列(从dist 1到dist 5)中的最小值和次最小值,并返回这些值所来自的列的名称(即“dist\u 3”),将这些信息放入4个新列中。给定的distX列将以字符串或字符串的形式混合使用数字和NaNnp.nan公司. 你知道吗
dfa = pd.DataFrame({'date': ['09-03-1988', '10-03-1988', '11-03-1988', '12-03-1988', '13-03-1988'],
'dist1': ['NaN',2,'NaN','NaN', 30],
'dist2': [20, 21, 22, 23, 'NaN'],
'dist3': [120, 'NaN', 122, 123, 11],
'dist4': [40, 'NaN', 42, 43, 'NaN'],
'dist5': ['NaN',1,'NaN','NaN', 70]})
任务1)我想添加两个新列“fir\u closest”和“fir\u closest\u dist”。你知道吗
fir\u closest\u dist应该包含从dist1到dist5列的最小值(即第1行为20,第5行为11)。你知道吗
fir\u closest应该包含fir\u closest\u dist中的值来自的列的名称(即第一行的“dist2”)
任务2)重复上述步骤,但以第二个/下一个最小值创建两个新列“sec\u closest”和“sec\u closest\u dist”
输出表需要看起来像dfb
dfb = pd.DataFrame({'date': ['09-03-1988', '10-03-1988', '11-03-1988', '12-03-1988', '13-03-1988'],
'dist1': ['NaN',2,'NaN','NaN', 30],
'dist2': [20, 21, 22, 23, 'NaN'],
'dist3': [120, 'Nan', 122, 123, 11],
'dist4': [40, 'NaN', 42, 43, 'NaN'],
'dist5': ['NaN',1,'NaN','NaN', 70],
'fir_closest': ['dist2','dist5','dist2','dist2', 'dist3'],
'fir_closest_dist': [20,1,22,23,11],
'sec_closest': ['dist4','dist1','dist4','dist4', 'dist1'],
'sec_closest_dist': [40,2,42,43,30]})
请出示代码或解释如何最好地处理这个问题。这种填充新列的方法的名称是什么?你知道吗
提前谢谢
假设您的数据帧名为
df
,并且运行了import pandas as pd
和import numpy as np
:我想这可以满足你的需要。你知道吗
相关问题 更多 >
编程相关推荐