Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 11.12.2016
Сообщений: 36

Убрать пустые строки в dataset, нарисовать график

02.04.2022, 23:38. Показов 1180. Ответов 3

Студворк — интернет-сервис помощи студентам
добрый день, помогите пожалуйста, найти ошибку

нужно построить график связи разности дат
Python
1
df2["delay"] = df.purchase_dt- df.reg_dttm
от цены (импортируется в df.purchase_amt)

я попыталась создать датасет df2, но в него нужно поставить только те строки, где есть цена.
как на картинке, пыталась присвоить isnan false, но не работает- подскажите, пожалуйста, почему и как это лучше исправить?


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns
import datetime
import numpy as np
 
 
dt_now = datetime.datetime.now().year
%matplotlib inline
df = pd.read_csv (r'C:\Users\Dell\Downloads\tt_q.csv', sep=';',delimiter=None)
 
df.purchase_dt= pd.to_datetime(df.purchase_dt)
df.purchase_dt = df.purchase_dt.dt.date
df.reg_dttm= pd.to_datetime(df.reg_dttm)
df.reg_dttm = df.reg_dttm.dt.date
df2 = pd.DataFrame()
df2["delay"] = df.purchase_dt- df.reg_dttm
 
#df2["isn"]= np.isnan(df.purchase_amt)
df2["delay"] = df2.delay.where(np.isnan(df.purchase_amt) == "False")
df2["purchase_amt"] = df.purchase_amt.where(np.isnan(df.purchase_amt) == "False" )
 
 
 
print(df2)


потом пытаюсь добавить эти колонки на график (точечный), но что то не получается с данными, может быть, вы могли бы подсказать, что тут не хватает?


Python
1
2
3
4
5
6
7
8
9
10
import matplotlib.pyplot as plt
import numpy as np
 
plt.close("all")
 
df = pd.DataFrame(df2, columns=["dealy (days)", "purchaising price", "c", "d"])
 
 
 
df.plot.scatter(x="dealy (days)", y="purchaising price");
Добавлено через 5 часов 40 минут
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
%matplotlib inline
 
import numpy as np
import matplotlib.pyplot as plt
 
x = df2.delay    #  x - координаты точек
y = df2.purchase_amt   #  y - координаты точек
 
fig, ax = plt.subplots()
 
ax.scatter(x, y,
           c = 'deeppink')    #  цвет точек
 
ax.set_facecolor('white')     #  цвет области Axes
ax.set_title('Один цвет')     #  заголовок для Axes
 
fig.set_figwidth(50)     #  ширина и
fig.set_figheight(50)    #  высота "Figure"
 
plt.show()
вот так выдает ошибку:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
TypeError                                 Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_14964/3573409971.py in <module>
      9 fig, ax = plt.subplots()
     10 
---> 11 ax.scatter(x, y,
     12            c = 'deeppink')    #  цвет точек
     13 
 
~\anaconda3\lib\site-packages\matplotlib\__init__.py in inner(ax, data, *args, **kwargs)
   1359     def inner(ax, *args, data=None, **kwargs):
   1360         if data is None:
-> 1361             return func(ax, *map(sanitize_sequence, args), **kwargs)
   1362 
   1363         bound = new_sig.bind(ax, *args, **kwargs)
 
~\anaconda3\lib\site-packages\matplotlib\axes\_axes.py in scatter(self, x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, edgecolors, plotnonfinite, **kwargs)
   4583                     for lw in linewidths]
   4584 
-> 4585         offsets = np.ma.column_stack([x, y])
   4586 
   4587         collection = mcoll.PathCollection(
 
~\anaconda3\lib\site-packages\numpy\ma\extras.py in __call__(self, x, *args, **params)
    289     def __call__(self, x, *args, **params):
    290         func = getattr(np, self.__name__)
--> 291         _d = func(tuple([np.asarray(a) for a in x]), *args, **params)
    292         _m = func(tuple([getmaskarray(a) for a in x]), *args, **params)
    293         return masked_array(_d, mask=_m)
 
<__array_function__ internals> in column_stack(*args, **kwargs)
 
~\anaconda3\lib\site-packages\numpy\lib\shape_base.py in column_stack(tup)
    654             arr = array(arr, copy=False, subok=True, ndmin=2).T
    655         arrays.append(arr)
--> 656     return _nx.concatenate(arrays, 1)
    657 
    658 
 
<__array_function__ internals> in concatenate(*args, **kwargs)
 
TypeError: The DTypes <class 'numpy.dtype[float64]'> and <class 'numpy.dtype[timedelta64]'> do not have a common DType. For example they cannot be stored in a single array unless the dtype is `object`.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.04.2022, 23:38
Ответы с готовыми решениями:

Работа с файлами. Убрать пустые строки
Дан текстовый файл, в котором встречаются пустые строки. Надо написать программу которая эти пустые строки из текстового файла удалит, и...

Убрать пустые строки на экране вывода
Добрый день. Имеется код, чтобы узнать, у кого из пользователей когда кончается пароль. Но в списке присутствуют учетки типо тест и прочие....

Как убрать пустые enter строки \n
Добрый вечер, пользователь отправляет сообщение через textarea при отправке он проходит валидацию ^=\n ]{1,98000}$/u' но когда...

3
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
03.04.2022, 05:20
ikonokot,
пыталась присвоить isnan false, но не работает
Вместо
Python
1
...np.isnan(df.purchase_amt) == "False"...
Попробуй
Python
1
...df.purchase_amt == df.purchase_amt
В numpy и pandas nan != nan
0
0 / 0 / 0
Регистрация: 11.12.2016
Сообщений: 36
03.04.2022, 18:43  [ТС]
я что- то не так делаю...
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns
import datetime
import numpy as np
 
 
dt_now = datetime.datetime.now().year
%matplotlib inline
df = pd.read_csv (r'C:\Users\Dell\Downloads\tt_q.csv', sep=';',delimiter=None)
 
df.purchase_dt= pd.to_datetime(df.purchase_dt)
df.purchase_dt = df.purchase_dt.dt.date
df.reg_dttm= pd.to_datetime(df.reg_dttm)
df.reg_dttm = df.reg_dttm.dt.date
df2 = pd.DataFrame()
df2["delay"] = df.purchase_dt- df.reg_dttm
 
 
#df2["delay"] = df2.delay#.where(np.isnan(df.purchase_amt) == "False")
#df2["purchase_amt"] = df.purchase_amt#.where(np.isnan(df.purchase_amt) == "False" )
df2["delay"] = df2.delay.where(df.purchase_amt == df.purchase_amt )
df2["purchase_amt"] = df.purchase_amt.where(df.purchase_amt == df.purchase_amt )
 
 
print(df2)

не выделяет он не нан почему то

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
       delay  purchase_amt
0        NaT           NaN
1        NaT           NaN
2    41 days         500.0
3        NaT           NaN
4        NaT           NaN
...      ...           ...
2372     NaT           NaN
2373  2 days        4000.0
2374  3 days        1500.0
2375     NaT           NaN
2376     NaT           NaN
 
[2377 rows x 2 columns]
попыталась применить такую конструкцию:
Code
1
2
def isNaN(num):
    return num != num
отделяет строки с NAN, если ставлю == то не работает, просто все подряд выводит

Добавлено через 3 часа 9 минут
получилось через строки, но это очень странно и непонятно

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns
import datetime
import numpy as np
 
 
dt_now = datetime.datetime.now().year
%matplotlib inline
df = pd.read_csv (r'C:\Users\Dell\Downloads\tt_q.csv', sep=';',delimiter=None)
 
df.purchase_dt= pd.to_datetime(df.purchase_dt)
df.purchase_dt = df.purchase_dt.dt.date
df.reg_dttm= pd.to_datetime(df.reg_dttm)
df.reg_dttm = df.reg_dttm.dt.date
df2 = pd.DataFrame()
df2["delay"] = df.purchase_dt- df.reg_dttm
x = []
y = []
#df2["isn"]= np.isnan(df.purchase_amt)
df2["delay"] = df2.delay.dt.days
df2["purchase_amt"] = df.purchase_amt
cc= df2.delay.count()-1
for i in range (0,cc):
    #print(df2.purchase_amt[i])
    if str(df2.purchase_amt[i]) != "nan":
        x.append(df2.delay[i])
        y.append(df2.purchase_amt[i])
 
 
 
print(y)
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
03.04.2022, 18:50
ikonokot,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import pandas as pd
import numpy as np 
 
 
df = pd.DataFrame({'purchase_dt': [11,np.nan,22,33,np.nan,44],
                'reg_dttm': [7,np.nan,4,8,np.nan,2], 
                'purchase_amt': [123,np.nan,234,345,np.nan,456]})
print(df)
 
df2 = pd.DataFrame()
df2['delay'] = df.purchase_dt - df.reg_dttm
df2['purchase_amt'] = df.purchase_amt
print(df2)
 
df2 = df2[df2.delay.values == df2.delay.values]
print(df2)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.04.2022, 18:50
Помогаю со студенческими работами здесь

Как убрать пустые строки в таблице?
Добрый день. У меня цикл &lt;?php foreach($fieldset as $field) { ?&gt; &lt;tr&gt; &lt;td&gt; &lt;?php echo $field; ?&gt; &lt;!-- выводим название...

Убрать все пустые строки в текстовом файле
Здравствуйте как в txt файле ..в файле одна строчка и ентер..т.е вторая строка пустая ....как убрать этот ентер....спасибо

Отфильтровать в файле пустые строки и убрать пробелы
нужно создать программу фильтр. пустые строки и пробелы убрать. вот часть кода которая есть: #define _CRT_SECURE_NO_WARNINGS ...

Убрать пустые строки при создании Word документа
Добрый день. Подскажите, пожалуйста, как убрать пустые строки в документе? Есть шаблон вордового документа с закладками для...

Убрать пустые строки в таблице списка установленных приложений из реестра
Сразу скажу, что powershell понимаю на самом поверхностном уровне. Следующий код был написан с помощью форумчан и знакомых. Скрипт...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru