одна строка Рассчитать сумму и вывести несколько столбцов панд данных - PullRequest
0 голосов
/ 02 мая 2018

У меня есть датафрейм, записанный как показано ниже

df = pd.read_csv(file, skiprows=1, names=['all','my','headers','named'])

С этого момента, как я могу применить следующий forumla df ['my'] - df ['all'] / df ['headers'] и напечатать имя из приведенных ниже данных в одну строку?

пример данных:

all      my     headers    named
10.1     50.2   10         top
20.2     40.2   4          bottom

текущих попыток:

print(df['named'] + " " + str(  (df['my'].astype(float) - df['all'].astype(float))  /  df['headers'].astype(float)  ) 

Я очень стараюсь сделать это в одном операторе print без дополнительных переменных или строк, кроме предоставленного одного оператора print.

ожидаемый результат:

top    1.01
bottom 5.00

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Я верю df.apply будет работать здесь.

df['answer'] = df.apply(lambda x: x['my'] - (x['all']/x['headers']), 1)
for index, row in df.itterrows: print(row['name'] + " - " + row['answer'])

Не один лайнер, но может дать вам представление о том, как использовать df.apply.

0 голосов
/ 02 мая 2018

Использование astype in pandas

print(df['named'] + " " + ((df['my'].astype(float) - df['all'].astype(float))/df['headers'].astype(float)).astype(str))
0                    top 4.01
1    bottom 5.000000000000001
dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...