Python 如何基于列名转换/插入/重新打包数据帧中的列?
如何使用插值/重块从下面的df_输入转换为df_输出Python 如何基于列名转换/插入/重新打包数据帧中的列?,python,pandas,dataframe,interpolation,Python,Pandas,Dataframe,Interpolation,如何使用插值/重块从下面的df_输入转换为df_输出 import pandas as pd df_input=pd.DataFrame([ [1,2],[1,3],[0,-6]], columns=[2,5]) df_output=pd.DataFrame([ [1,0.67,1.33],[1,1,2],[0,-2,-4]], columns=[2, 3, 6]) df_输入: 2 5 0 1 2 1 1 3 2 0 -6 df_输出: 2 3 6
import pandas as pd
df_input=pd.DataFrame([ [1,2],[1,3],[0,-6]], columns=[2,5])
df_output=pd.DataFrame([ [1,0.67,1.33],[1,1,2],[0,-2,-4]], columns=[2, 3, 6])
df_输入:
2 5
0 1 2
1 1 3
2 0 -6
df_输出:
2 3 6
0 1 0.67 1.33
1 1 1.00 2.00
2 0 -2.00 -4.00
例如
要从df_input.loc[0,5](值=2)转到df_output.loc[0,3](值=0.67)和df_output.loc[0,6](值=1.33),需要根据列名的值进行重新校验:
0.67 = 2 * (6-5) / (6-3)
1.33 = 2 * (5-3) / (6-3)
“2”列在df_输入和df_输出之间相同,因为“2”列在[2,5]和[2,3,6]中
这是一个简单的例子,我还想将列名[2,5]和[2,3,6]推广到任何给定的数字向量
非常感谢。在上面的示例中,能否请您澄清列名(即整数)和df_输入中使用的实际值(即整数)之间的区别。很容易混淆两者(双关语)。您提供的公式不清楚。仅根据input
df
中的第一行,(6-3)
从何而来1.33=2*(5-3)/(6-3)
?在上面的示例中,您能否澄清列名称(是整数)和df\u输入中使用的实际值(也是整数)。很容易混淆两者(双关语)。您提供的公式不清楚。仅根据输入df
中的第一行,(6-3)
从哪里来1.33=2*(5-3)/(6-3)
?