'for loop without converting to tuple

I'm writing predict code. I want to predict each row in itself, since it has null values ​​in it. I can't remove null values ​​because it turns into tuple inside the for loop in my code.

my code:

df = pd.read_csv('csvfile.csv', skiprows=1, delimiter=';', encoding="utf8")
df.columns = ["date", "customer_name", "item_code", "quantity"]

df['customer_item'] = df.customer_name + ', ' + df.item_code
df['date'] = pd.to_datetime(df['date'])

df["quantity"] = df["quantity"].astype(int, errors='ignore')
df['date'] = pd.to_datetime(df['date']) - pd.to_timedelta(7, unit='d')
dfm = df.groupby(['customer_item', pd.Grouper(key='date', freq='W-MON')])['quantity'].sum().reset_index().sort_values('date')

for inc in range(1,11):
    column_name = 'quantity_' + str(inc) 
    dfm[column_name] = dfm.groupby("customer_item")['quantity'].shift(inc)

dfm = dfm.drop_duplicates(subset=['customer_item'],keep='last')

for ind in dfm.index:
    dfmf=(dfm['date'][ind], dfm['customer_item'][ind], dfm['quantity'][ind], dfm['quantity_1'][ind], 
        dfm['quantity_2'][ind], dfm['quantity_3'][ind], dfm['quantity_4'][ind], dfm['quantity_5'][ind], dfm['quantity_6'][ind], 
        dfm['quantity_7'][ind], dfm['quantity_8'][ind], dfm['quantity_9'][ind], dfm['quantity_10'][ind])



dfmf = dfmf.dropna(axis=1)
print(dfmf)

out: 'tuple' object has no attribute 'dropna'

if i delete "dfmf = dfmf.dropna(axis=1)", out:

(Timestamp('2021-12-13 00:00:00'), 'C36, T2021', 210, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan)
(Timestamp('2021-12-20 00:00:00'), 'C36, T1528', 820, 450.0, nan, nan, nan, nan, nan, nan, nan, nan, nan)
(Timestamp('2021-12-20 00:00:00'), 'C36, T1480', 17, 23.0, nan, nan, nan, nan, nan, nan, nan, nan, nan)
(Timestamp('2021-12-20 00:00:00'), 'C36, T1121', 216, 210.0, nan, nan, nan, nan, nan, nan, nan, nan, nan)
(Timestamp('2021-12-20 00:00:00'), 'C36, T0323', 50, 92.0, nan, nan, nan, nan, nan, nan, nan, nan, nan)
(Timestamp('2021-12-20 00:00:00'), 'C36, T1536', 100, 300.0, 220.0, nan, nan, nan, nan, nan, nan, nan, nan)
(Timestamp('2021-12-20 00:00:00'), 'C36, T0446', 100, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan)
(Timestamp('2021-12-20 00:00:00'), 'C36, T1533', 170, 170.0, nan, nan, nan, nan, nan, nan, nan, nan, nan)
(Timestamp('2021-12-20 00:00:00'), 'C36, T0430', 100, 200.0, nan, nan, nan, nan, nan, nan, nan, nan, nan)
(Timestamp('2022-01-03 00:00:00'), 'C36, T0394', 334, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan)
(Timestamp('2022-01-17 00:00:00'), 'C36, T0372', 620, 246.0, nan, nan, nan, nan, nan, nan, nan, nan, nan)
(Timestamp('2022-01-24 00:00:00'), 'C36, T1238', 210, 390.0, 150.0, 50.0, 200.0, 140.0, nan, nan, nan, nan, nan)
(Timestamp('2022-02-14 00:00:00'), 'C36, T1256', 170, 110.0, 104.0, 105.0, 75.0, nan, nan, nan, nan, nan, nan)
(Timestamp('2022-03-14 00:00:00'), 'C36, T1221', 79, 50.0, 159.0, nan, nan, nan, nan, nan, nan, nan, nan)
(Timestamp('2022-03-21 00:00:00'), 'C36, T0435', 72, 760.0, 452.0, 517.0, nan, nan, nan, nan, nan, nan, nan)
(Timestamp('2022-03-21 00:00:00'), 'C36, T0335', 160, 80.0, 40.0, 100.0, nan, nan, nan, nan, nan, nan, nan)
(Timestamp('2022-03-21 00:00:00'), 'C36, T0429', 364, 300.0, 50.0, 400.0, nan, nan, nan, nan, nan, nan, nan)
(Timestamp('2022-03-21 00:00:00'), 'C36, T1532', 40, 50.0, 80.0, nan, nan, nan, nan, nan, nan, nan, nan)
(Timestamp('2022-03-21 00:00:00'), 'C36, T0361', 301, 217.0, 400.0, 217.0, 200.0, 267.0, nan, nan, nan, nan, nan)
(Timestamp('2022-04-04 00:00:00'), 'C36, T0369', 534, 1068.0, 867.0, 833.0, 867.0, 535.0, 896.0, nan, nan, nan, nan)
(Timestamp('2022-04-04 00:00:00'), 'C36, T0371', 700, 1767.0, 853.0, 1292.0, 1641.0, 834.0, 1098.0, nan, nan, nan, nan)
(Timestamp('2022-04-04 00:00:00'), 'C36, T0393', 500, 834.0, 834.0, 801.0, 616.0, 1089.0, nan, nan, nan, nan, nan)
(Timestamp('2022-04-04 00:00:00'), 'C36, T0397', 620, 700.0, 200.0, 433.0, 235.0, nan, nan, nan, nan, nan, nan)
(Timestamp('2022-04-04 00:00:00'), 'C36, T1114', 2116, 1000.0, 200.0, 1500.0, 1600.0, 1450.0, 1350.0, 2780.0, nan, nan, nan)
(Timestamp('2022-04-04 00:00:00'), 'C36, T1104', 300, 450.0, 200.0, 350.0, 300.0, 500.0, nan, nan, nan, nan, nan)
(Timestamp('2022-04-11 00:00:00'), 'C36, T0324', 100, 67.0, 167.0, 133.0, 133.0, 271.0, 136.0, 234.0, nan, nan, nan)
(Timestamp('2022-04-11 00:00:00'), 'C36, T0248', 160, 160.0, 1160.0, 200.0, 360.0, 440.0, 760.0, 560.0, nan, nan, nan)
(Timestamp('2022-04-11 00:00:00'), 'C36, T1219', 151, 117.0, 285.0, 335.0, 150.0, 252.0, 281.0, 403.0, nan, nan, nan)
(Timestamp('2022-04-11 00:00:00'), 'C36, T2008', 400, 868.0, 334.0, 372.0, 600.0, 267.0, 1134.0, 752.0, 1267.0, nan, nan)
(Timestamp('2022-04-11 00:00:00'), 'C36, T0445', 600, 601.0, 600.0, nan, nan, nan, nan, nan, nan, nan, nan)
(Timestamp('2022-04-11 00:00:00'), 'C36, T0539', 334, 760.0, 660.0, 790.0, 527.0, 800.0, nan, nan, nan, nan, nan)
(Timestamp('2022-04-11 00:00:00'), 'C36, T0860', 267, 200.0, 534.0, 500.0, 333.0, 533.0, 270.0, 694.0, nan, nan, nan)
(Timestamp('2022-04-11 00:00:00'), 'C36, T2005', 933, 1467.0, 800.0, 933.0, 933.0, 600.0, 1467.0, 960.0, 1334.0, nan, nan)
(Timestamp('2022-04-11 00:00:00'), 'C36, T0991', 125, 200.0, 175.0, 300.0, 150.0, 275.0, 400.0, 376.0, nan, nan, nan)
(Timestamp('2022-04-11 00:00:00'), 'C36, T2017', 900, 990.0, 1200.0, 300.0, 1400.0, 1600.0, 1500.0, 990.0, 2000.0, nan, nan)
(Timestamp('2022-04-11 00:00:00'), 'C36, T2023', 600, 900.0, 1500.0, 800.0, 190.0, 2000.0, 902.0, 1400.0, 1780.0, 1752.0, nan)

I want to remove the nan places and predict each line separately.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source