Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 从表中的列中减去单个值_Python 3.x_Pandas_Apply - Fatal编程技术网

Python 3.x 从表中的列中减去单个值

Python 3.x 从表中的列中减去单个值,python-3.x,pandas,apply,Python 3.x,Pandas,Apply,我有两个数据帧,df和df_test。我正在尝试为每个df_测试行创建一个新的数据帧,其中将包括x坐标和y坐标之间的差异。我还想创建一个新的列,给出对象之间距离的大小。下面是我的代码 import pandas as pd import numpy as np # Create Dataframe index_numbers = np.linspace(0, 10, 11, dtype=np.int) index_ = ['OP_%s' % number for number in inde

我有两个数据帧,df和df_test。我正在尝试为每个df_测试行创建一个新的数据帧,其中将包括x坐标和y坐标之间的差异。我还想创建一个新的列,给出对象之间距离的大小。下面是我的代码

import pandas as pd
import numpy as np


# Create Dataframe
index_numbers = np.linspace(0, 10, 11, dtype=np.int)
index_ = ['OP_%s' % number for number in index_numbers]
header = ['X', 'Y', 'D']
# print(index_)

data = np.round_(np.random.uniform(low=0, high=10, size=(len(index_), 3)), decimals=0)
# print(data)

df = pd.DataFrame(data=data, index=index_, columns=header)
df_test = df.sample(3)
# print(df)
# print(df_test)

for index, row in df_test.iterrows():
    print(index)
    print(row)
    df_(index) = df
    df_(index)['X'] = df['X'] - df_test['X'][row]
    df_(index)['Y'] = df['Y'] - df_test['Y'][row]
    df_(index)['Dist'] = np.sqrt(df_(index)['X']**2 + df_(index)['Y']**2)
    print(df_(index))
更适合循环

for index, row in df_test.iterrows():
    # print(index)
    # print(row)
    # print("df_{0}".format(index))
    df_temp = df.copy()
    df_temp['X'] = df_temp['X'] - df_test['X'][index]
    df_temp['Y'] = df_temp['Y'] - df_test['Y'][index]
    df_temp['Dist'] = np.sqrt(df_temp['X']**2 + df_temp['Y']**2)
    print(df_temp)
我编写了一个for循环来遍历df_测试数据帧的每一行,并“尝试”创建列。每个循环中的(索引)是基于所用测试行的新数据帧的名称。一旦使用修改后的列和新列创建了数据帧,我就需要将数据帧保存到字典中。新循环生成我需要的每个新数据帧,但保存每个新数据帧的最佳方法是什么?如果您能帮助我们创建这些专栏,我们将不胜感激


如果需要,请用任何问题进行评论,以便我能更容易理解

找不到关于df_T1的任何信息很抱歉,T1是我以前使用的(索引)。我换了。好主意。读到这篇文章,你可能会有一些运气:也许相关,为什么
df\u测试
df
的一个样本?当我尝试运行您的代码(并将新的
df
s分配给字典)时,此方法会在pandas中创建索引错误。df_test是df的一个示例,因为我希望找到所有对象之间的距离(每行是一个与某个坐标原点有x和y距离的对象)。我需要找到从df_测试中的每个对象到df数据帧中任何对象的距离。不过,我对其他方法持开放态度。我正试图用我现在能想到的唯一方法来解决这个问题。那么,如果你有一个10个坐标的DF,你想得到一个90个坐标的DF(或dict,或list)?e、 例如,索引(dict key)是原始的x-y,值是到其他9个坐标的距离?