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

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

02.04.2022, 23:38. Показов 1156. Ответов 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
8850 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,316
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
8850 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,316
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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru