при чтении данных из файла: output {'y': array ([- 0.21]), 'x': array ([1.63])} - PullRequest
0 голосов
/ 30 мая 2019

Я буду читать данные из файла, у меня есть только два числа в файле (1.63, -0.21), вывод:

{'y': array([-0.21]), 'x': array([1.63])}

Мне нужен вывод, как это:

position = {'x':  1.63 , 'y' : -0.21}

это мой код:

import pandas as pd
import numpy as np
def read():

    data = pd.read_csv('distance.csv', skipinitialspace=True, header=None)

    x0, y0 = np.array(data.ix[:,0]), np.array(data.ix[:,1])

    position = {'x':  x0 , 'y' : y0}
    print position

if __name__ == '__main__':


    try:
        read()
    except KeyboardInterrupt:
        rospy.loginfo('Shutting down')

, пожалуйста, помогите мне

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

этим способом работал но это долго

import pandas as pd
import numpy as np
import csv
def read():
    data_path = 'distance.csv'
    with open(data_path, 'r') as f:
        reader = csv.reader(f, delimiter=',')

        # get all the rows as a list
        data = list(reader)
        # transform data into numpy array
        data = np.array(data).astype(float)


    a = data[0]
    x0,y0 = a[0], a[1]

#
    position = {'x':  x0 , 'y' : y0}
    print position

if __name__ == '__main__':


    try:
        read()
    except KeyboardInterrupt:
        rospy.loginfo('Shutting down')

вывод:

{'y': -0.21, 'x': 1.63}

и этот способ хорош:

import pandas as pd
import numpy as np
def read():

    data = np.genfromtxt('distance.csv', dtype=str, delimiter=',')

    x0, y0 = (data[0]), (data[1])

    position = {'x':  x0 , 'y' : y0}
    print position

if __name__ == '__main__':


    try:
        read()
    except KeyboardInterrupt:
        rospy.loginfo('Shutting down')

вывод:

{'y': '-0.21', 'x': '1.63'}
0 голосов
/ 30 мая 2019

Изменить это x0, y0 = np.array(data.ix[:,0]), np.array(data.ix[:,1]) до x0, y0 = data.ix[:,0], data.ix[:,1]

По сути, вам нужно удалить обертку np.array, которая преобразует ваш float в nd.array

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...