konstantgr/themisto huggingface dataset:
# sklearn.linear_model.LogisticRegression
from sklearn.feature_extraction.text import TfidfVectorizer
import scipy
from scipy.sparse import hstack, vstack

vectorizer = TfidfVectorizer()

X = scipy.sparse.csr_matrix(validation_features[train_columns].values)

X2 = vectorizer.fit_transform(train_features["text"])

X3 = Vstack((X, X2))
# sklearn.linear_model.LogisticRegression
from sklearn.feature_extraction.text import TfidfVectorizer
import scipy
from scipy.sparse import hstack, vstack

vectorizer = TfidfVectorizer()

X = scipy.sparse.csr_matrix(validation_features[train_columns].values)

X2 = vectorizer.fit_transform(train_features["text"])

X3 = vstack((X, X2))
# sklearn.linear_model.LogisticRegression
from sklearn.feature_extraction.text import TfidfVectorizer
import scipy
from scipy.sparse import hstack, vstack

vectorizer = TfidfVectorizer()

X = scipy.sparse.csr_matrix(validation_features[train_columns].values)

X2 = vectorizer.fit_transform(train_features["text"])

# X3 = hstack((X, X2))
X.shape
# sklearn.linear_model.LogisticRegression
from sklearn.feature_extraction.text import TfidfVectorizer
import scipy
from scipy.sparse import hstack, vstack

vectorizer = TfidfVectorizer()

X = scipy.sparse.csr_matrix(validation_features[train_columns].values)

X2 = vectorizer.fit_transform(train_features["text"])

# X3 = hstack((X, X2))
X.shape, X2.shape
# sklearn.linear_model.LogisticRegression
from sklearn.feature_extraction.text import TfidfVectorizer
import scipy
from scipy.sparse import hstack, vstack

vectorizer = TfidfVectorizer()

X = scipy.sparse.csr_matrix(train_features[train_columns].values)

X2 = vectorizer.fit_transform(train_features["text"])

# X3 = hstack((X, X2))
X.shape, X2.shape
# sklearn.linear_model.LogisticRegression
from sklearn.feature_extraction.text import TfidfVectorizer
import scipy
from scipy.sparse import hstack, vstack

vectorizer = TfidfVectorizer()

X = scipy.sparse.csr_matrix(train_features[train_columns].values)

X2 = vectorizer.fit_transform(train_features["text"])

X3 = hstack((X, X2))
# X.shape, X2.shape
# sklearn.linear_model.LogisticRegression
from sklearn.feature_extraction.text import TfidfVectorizer
import scipy
from scipy.sparse import hstack, vstack

vectorizer = TfidfVectorizer()

X = scipy.sparse.csr_matrix(train_features[train_columns].values)

X2 = vectorizer.fit_transform(train_features["text"])

X3 = hstack((X, X2))
# X.shape, X2.shape

clf = lgb.LGBMClassifier()
clf.fit(X3, target)

pred = clf.predict(validation_features[train_columns])
f1_score(pred, validation_features["primary_label"], average='weighted')
# sklearn.linear_model.LogisticRegression
from sklearn.feature_extraction.text import TfidfVectorizer
import scipy
from scipy.sparse import hstack, vstack

vectorizer = TfidfVectorizer()

X = scipy.sparse.csr_matrix(train_features[train_columns].values)

X2 = vectorizer.fit_transform(train_features["text"])

X3 = hstack((X, X2))
# X.shape, X2.shape

clf = lgb.LGBMClassifier()
clf.fit(X3, target)

def transform(X, text_column):    
    X = scipy.sparse.csr_matrix(X.values)
    X2 = vectorizer.transform(text_column)
    return hstack((X, X2)) 

pred = clf.predict(transform(validation_features[train_columns], validation_features['text']))

f1_score(pred, validation_features["primary_label"], average='weighted')
train_features.text[1]
from sklearn.feature_extraction.text import TfidfVectorizer

# text = train_features["text"]
# vectorizer = TfidfVectorizer()
# X = vectorizer.fit_transform(corpus)

train_features["text"] = text.apply(lambda x: " ".join(x))
validation_features["text"] = text.apply(lambda x: " ".join(x))
test_features["text"] = text.apply(lambda x: " ".join(x))
pred = clf.predict(validation_features[train_columns])

f1_score(pred, validation_features["primary_label"], average='weighted')
train_features.text[1]
from sklearn.feature_extraction.text import TfidfVectorizer

# text = train_features["text"]
# vectorizer = TfidfVectorizer()
# X = vectorizer.fit_transform(corpus)

train_features["text"].apply(lambda x: " ".join(x), inplace=True)
validation_features["text"].apply(lambda x: " ".join(x), inplace=True)
test_features["text"].apply(lambda x: " ".join(x), inplace=True)
train_features.text[1]
from sklearn.feature_extraction.text import TfidfVectorizer

# text = train_features["text"]
# vectorizer = TfidfVectorizer()
# X = vectorizer.fit_transform(corpus)

train_features["text"] = train_features["text"].apply(lambda x: " ".join(x))
validation_features["text"] = validation_features["text"].apply(lambda x: " ".join(x))
test_features["text"] = test_features["text"].apply(lambda x: " ".join(x))
# train_features.drop(columns=["filename"])

validation_features["text"]
train_features.text[1]
from sklearn.feature_extraction.text import TfidfVectorizer

# text = train_features["text"]
# vectorizer = TfidfVectorizer()
# X = vectorizer.fit_transform(corpus)

train_features["text"] = train_features["text"].apply(lambda x: " ".join(eval(x))
validation_features["text"] = validation_features["text"].apply(lambda x: " ".join(eval(x))
test_features["text"] = test_features["text"].apply(lambda x: " ".join(x))
train_features.text[1]
from sklearn.feature_extraction.text import TfidfVectorizer

# text = train_features["text"]
# vectorizer = TfidfVectorizer()
# X = vectorizer.fit_transform(corpus)

train_features["text"] = train_features["text"].apply(lambda x: " ".join(eval(x)))
validation_features["text"] = validation_features["text"].apply(lambda x: " ".join(eval(x)))
test_features["text"] = test_features["text"].apply(lambda x: " ".join(x))
import pandas as pd
import lightgbm as lgb
from sklearn.metrics import accuracy_score

from sklearn.model_selection import train_test_split

features_path = 'data/task2/'
test_features = pd.read_pickle(features_path+'test_features.pkl')
train_features = pd.read_pickle(features_path+'train_features.pkl')
validation_features = pd.read_pickle(features_path+'validation_features.pkl')

train_features.index = range(train_features.shape[0])
validation_features.index = range(validation_features.shape[0])
test_features.index = range(test_features.shape[0])


train_features.fillna(0, inplace=True)
train_features[train_features['text'] == 0]['text'] = "NONE"

# train_features[train_features["code_line_after"] == 0].loc["code_line_after"] = ""

test_features.fillna(0, inplace=True)

validation_features.fillna(0, inplace=True)

print(train_features.shape)
print(validation_features.shape)
print(test_features.shape)
validation_features["text"]
def transform(X, text_column, vectorizer):    
    X2 = vectorizer.transform(text_column)
    return hstack((X, X2)) 

vectorizer1 = TfidfVectorizer()
vectorizer2 = TfidfVectorizer()
vectorizer3 = TfidfVectorizer()
 
X = scipy.sparse.csr_matrix(train_features[train_columns].values)
X1 = vectorizer.fit_transform(train_features['text'])
X2 = vectorizer1.fit_transform(train_features['code_line_before'])
X3 = vectorizer2.fit_transform(train_features['code_line_after'])

X = hstack((X, X1, X2, X3)) 

clf = lgb.LGBMClassifier()
clf.fit(X, target)



X = scipy.sparse.csr_matrix(validation_features[train_columns].values)
X1 = vectorizer.transform(validation_features['text'])
X2 = vectorizer1.transform(validation_features['code_line_before'])
X3 = vectorizer2.transform(validation_features['code_line_after'])

X = hstack((X, X1, X2, X3)) 

pred = clf.predict(X)
f1_score(pred, validation_features["primary_label"], average='weighted')
train_features.text[1]
from sklearn.feature_extraction.text import TfidfVectorizer

# text = train_features["text"]
# vectorizer = TfidfVectorizer()
# X = vectorizer.fit_transform(corpus)

train_features["text"] = train_features["text"].apply(lambda x: " ".join(x))
validation_features["text"] = validation_features["text"].apply(lambda x: " ".join(x))
test_features["text"] = test_features["text"].apply(lambda x: " ".join(x))

train_features["code_line_before"] = train_features["code_line_before"].apply(lambda x: " ".join(x))
validation_features["code_line_before"] = validation_features["code_line_before"].apply(lambda x: " ".join(x))
test_features["code_line_before"] = test_features["code_line_before"].apply(lambda x: " ".join(x))


train_features["code_line_after"] = train_features["code_line_after"].apply(lambda x: " ".join(x))
validation_features["code_line_after"] = validation_features["code_line_after"].apply(lambda x: " ".join(x))
test_features["code_line_after"] = test_features["code_line_after"].apply(lambda x: " ".join(x))
import pandas as pd
import lightgbm as lgb
from sklearn.metrics import accuracy_score
from sklearn.feature_extraction.text import TfidfVectorizer
import scipy
from scipy.sparse import hstack
from sklearn.model_selection import train_test_split

features_path = 'data/task2/'
test_features = pd.read_pickle(features_path+'test_features.pkl')
train_features = pd.read_pickle(features_path+'train_features.pkl')
validation_features = pd.read_pickle(features_path+'validation_features.pkl')

train_features.index = range(train_features.shape[0])
validation_features.index = range(validation_features.shape[0])
test_features.index = range(test_features.shape[0])


train_features.fillna(0, inplace=True)
train_features[train_features['text'] == 0]['text'] = "NONE"
train_features[train_features['code_line_after'] == 0]['code_line_after'] = "NONE"
train_features[train_features['code_line_before'] == 0]['code_line_before'] = "NONE"

test_features.fillna(0, inplace=True)
validation_features.fillna(0, inplace=True)


print(train_features.shape)
print(validation_features.shape)
print(test_features.shape)
# train_features.drop(columns=["filename"])

validation_features["code_line_before"].text
# train_features.drop(columns=["filename"])

validation_features["code_line_before"].sample(100)
import pandas as pd
import lightgbm as lgb
from sklearn.metrics import accuracy_score
from sklearn.feature_extraction.text import TfidfVectorizer
import scipy
from scipy.sparse import hstack
from sklearn.model_selection import train_test_split

features_path = 'data/task2/'
test_features = pd.read_pickle(features_path+'test_features.pkl')
train_features = pd.read_pickle(features_path+'train_features.pkl')
validation_features = pd.read_pickle(features_path+'validation_features.pkl')

train_features.index = range(train_features.shape[0])
validation_features.index = range(validation_features.shape[0])
test_features.index = range(test_features.shape[0])


train_features.fillna(0, inplace=True)
train_features[train_features['text'] == 0]['text'] = "NONE"
train_features[train_features['code_line_after'] == 0]['code_line_after'] = "NONE"
train_features[train_features['code_line_before'] == 0]['code_line_before'] = "NONE"

validation_features[validation_features['text'] == 0]['text'] = "NONE"
validation_features[validation_features['code_line_after'] == 0]['code_line_after'] = "NONE"
validation_features[validation_features['code_line_before'] == 0]['code_line_before'] = "NONE"

test_features.fillna(0, inplace=True)
validation_features.fillna(0, inplace=True)


print(train_features.shape)
print(validation_features.shape)
print(test_features.shape)
import pandas as pd
import lightgbm as lgb
from sklearn.metrics import accuracy_score
from sklearn.feature_extraction.text import TfidfVectorizer
import scipy
from scipy.sparse import hstack
from sklearn.model_selection import train_test_split

features_path = 'data/task2/'
test_features = pd.read_pickle(features_path+'test_features.pkl')
train_features = pd.read_pickle(features_path+'train_features.pkl')
validation_features = pd.read_pickle(features_path+'validation_features.pkl')

train_features.index = range(train_features.shape[0])
validation_features.index = range(validation_features.shape[0])
test_features.index = range(test_features.shape[0])


train_features.fillna(0, inplace=True)
train_features[train_features['text'] == 0]['text'] = "NONE"
train_features[train_features['code_line_after'] == 0]['code_line_after'] = "NONE"
train_features[train_features['code_line_before'] == 0]['code_line_before'] = "NONE"

validation_features[validation_features['text'] == 0]['text'] = "NONE"
validation_features[validation_features['code_line_after'] == 0]['code_line_after'] = "NONE"
validation_features[validation_features['code_line_before'] == 0]['code_line_before'] = "NONE"

test_features[test_features['text'] == 0]['text'] = "NONE"
test_features[test_features['code_line_after'] == 0]['code_line_after'] = "NONE"
test_features[test_features['code_line_before'] == 0]['code_line_before'] = "NONE"

test_features.fillna(0, inplace=True)
validation_features.fillna(0, inplace=True)


print(train_features.shape)
print(validation_features.shape)
print(test_features.shape)
import pandas as pd
import lightgbm as lgb
from sklearn.metrics import accuracy_score
from sklearn.feature_extraction.text import TfidfVectorizer
import scipy
from scipy.sparse import hstack
from sklearn.model_selection import train_test_split

features_path = 'data/task2/'
test_features = pd.read_pickle(features_path+'test_features.pkl')
train_features = pd.read_pickle(features_path+'train_features.pkl')
validation_features = pd.read_pickle(features_path+'validation_features.pkl')

train_features.index = range(train_features.shape[0])
validation_features.index = range(validation_features.shape[0])
test_features.index = range(test_features.shape[0])


train_features.fillna(0, inplace=True)
train_features[train_features['text'] == 0]['text'] = "NONE"
train_features[train_features['code_line_after'] == 0]['code_line_after'] = "NONE"
train_features[train_features['code_line_before'] == 0]['code_line_before'] = "NONE"

test_features.fillna(0, inplace=True)
validation_features.fillna(0, inplace=True)

validation_features[validation_features['text'] == 0]['text'] = "NONE"
validation_features[validation_features['code_line_after'] == 0]['code_line_after'] = "NONE"
validation_features[validation_features['code_line_before'] == 0]['code_line_before'] = "NONE"

test_features[test_features['text'] == 0]['text'] = "NONE"
test_features[test_features['code_line_after'] == 0]['code_line_after'] = "NONE"
test_features[test_features['code_line_before'] == 0]['code_line_before'] = "NONE"



print(train_features.shape)
print(validation_features.shape)
print(test_features.shape)
import pandas as pd
import lightgbm as lgb
from sklearn.metrics import accuracy_score
from sklearn.feature_extraction.text import TfidfVectorizer
import scipy
from scipy.sparse import hstack
from sklearn.model_selection import train_test_split

features_path = 'data/task2/'
test_features = pd.read_pickle(features_path+'test_features.pkl')
train_features = pd.read_pickle(features_path+'train_features.pkl')
validation_features = pd.read_pickle(features_path+'validation_features.pkl')

train_features.index = range(train_features.shape[0])
validation_features.index = range(validation_features.shape[0])
test_features.index = range(test_features.shape[0])


train_features.fillna(0, inplace=True)
# train_features[train_features['text'] == 0]['text'] = "NONE"
# train_features[train_features['code_line_after'] == 0]['code_line_after'] = "NONE"
# train_features[train_features['code_line_before'] == 0]['code_line_before'] = "NONE"

test_features.fillna(0, inplace=True)
validation_features.fillna(0, inplace=True)


print(train_features.shape)
print(validation_features.shape)
print(test_features.shape)
def transform(X, text_column, vectorizer):    
    X2 = vectorizer.transform(text_column)
    return hstack((X, X2)) 

vectorizer1 = TfidfVectorizer()
vectorizer2 = TfidfVectorizer()
vectorizer3 = TfidfVectorizer()
 
X = scipy.sparse.csr_matrix(train_features[train_columns].values)
X1 = vectorizer.fit_transform(train_features['text'])
# X2 = vectorizer1.fit_transform(train_features['code_line_before'])
# X3 = vectorizer2.fit_transform(train_features['code_line_after'])

X = hstack((X, X1)) 

clf = lgb.LGBMClassifier()
clf.fit(X, target)



X = scipy.sparse.csr_matrix(validation_features[train_columns].values)
X1 = vectorizer.transform(validation_features['text'])
# X2 = vectorizer1.transform(validation_features['code_line_before'])
# X3 = vectorizer2.transform(validation_features['code_line_after'])

X = hstack((X, X1)) 

pred = clf.predict(X)
f1_score(pred, validation_features["primary_label"], average='weighted')
X = scipy.sparse.csr_matrix(test_features[train_columns].values)
X1 = vectorizer.transform(test_features['text'])
# X2 = vectorizer1.transform(validation_features['code_line_before'])
# X3 = vectorizer2.transform(validation_features['code_line_after'])

X = hstack((X, X1)) 

pred = clf.predict(X)
X = scipy.sparse.csr_matrix(test_features[train_columns].values)
X1 = vectorizer.transform(test_features['text'])
# X2 = vectorizer1.transform(validation_features['code_line_before'])
# X3 = vectorizer2.transform(validation_features['code_line_after'])

X = hstack((X, X1)) 

pred = clf.predict(X)
pred
def transform(X, text_column, vectorizer):    
    X2 = vectorizer.transform(text_column)
    return hstack((X, X2)) 

vectorizer1 = TfidfVectorizer()
vectorizer2 = TfidfVectorizer()
vectorizer3 = TfidfVectorizer()
 
X = scipy.sparse.csr_matrix(train_features[train_columns].values)
X1 = vectorizer.fit_transform(train_features['text'])
# X2 = vectorizer1.fit_transform(train_features['code_line_before'])
# X3 = vectorizer2.fit_transform(train_features['code_line_after'])

X = hstack((X, X1)) 

clf = lgb.LGBMClassifier()
clf.fit(X, target)



X = scipy.sparse.csr_matrix(validation_features[train_columns].values)
X1 = vectorizer.transform(validation_features['text'])
# X2 = vectorizer1.transform(validation_features['code_line_before'])
# X3 = vectorizer2.transform(validation_features['code_line_after'])

X = hstack((X, X1)) 

pred = clf.predict(X)
f1_score(pred, validation_features["primary_label"], average='weighted')
pred
def transform(X, text_column, vectorizer):    
    X2 = vectorizer.transform(text_column)
    return hstack((X, X2)) 

vectorizer1 = TfidfVectorizer()
vectorizer2 = TfidfVectorizer()
vectorizer3 = TfidfVectorizer()
 
X = scipy.sparse.csr_matrix(train_features[train_columns].values)
X1 = vectorizer.fit_transform(train_features['text'])
# X2 = vectorizer1.fit_transform(train_features['code_line_before'])
# X3 = vectorizer2.fit_transform(train_features['code_line_after'])

X = hstack((X, X1)) 

clf = lgb.LGBMClassifier()
clf.fit(X, target)



X = scipy.sparse.csr_matrix(validation_features[train_columns].values)
X1 = vectorizer.transform(validation_features['text'])
# X2 = vectorizer1.transform(validation_features['code_line_before'])
# X3 = vectorizer2.transform(validation_features['code_line_after'])

X = hstack((X, X1)) 

pred = clf.predict(X)
f1_score(pred, validation_features["primary_label"], average='weighted')
validation_features["primary_label"]
validation_features["code_line_before"].sample(10)
def transform(X, text_column, vectorizer):    
    X2 = vectorizer.transform(text_column)
    return hstack((X, X2)) 

vectorizer1 = TfidfVectorizer()
vectorizer2 = TfidfVectorizer()
vectorizer3 = TfidfVectorizer()
 
X = scipy.sparse.csr_matrix(train_features[train_columns].values)
X1 = vectorizer.fit_transform(train_features['text'])

X = hstack((X, X1)) 

clf = lgb.LGBMClassifier()
clf.fit(X, target)



X = scipy.sparse.csr_matrix(validation_features[train_columns].values)
X1 = vectorizer.transform(validation_features['text'])

X = hstack((X, X1)) 

pred = clf.predict(X)
f1_score(pred, validation_features["primary_label"], average='weighted')
X = scipy.sparse.csr_matrix(test_features[train_columns].values)
X1 = vectorizer.transform(test_features['text'])

X = hstack((X, X1)) 

pred = clf.predict(X)
pred
# convert array into dataframe
DF = pd.DataFrame(pred)
 
# save the dataframe as a csv file
DF.to_csv("submission.csv")
# # Do not forget to check if your notebook log collection plugin is working
import pandas as pd
import numpy as np
!pip install pandas
!pip install numpy
!pip install zipfile
import zipfile
with zipfile.ZipFile('jetnet_logs.zip', 'r') as zip_ref:
    zip_ref.extract('/data/task1')
    data = pd.read_csv('/data/task1', sep=" ", header=None)
with zipfile.ZipFile('/data/task1/jetnet_logs.zip', 'r') as zip_ref:
    zip_ref.extract('/data/task1')
    data = pd.read_csv('/data/task1', sep=" ", header=None)
with zipfile.ZipFile('data/task1/jetnet_logs.zip') as myzip:
    with myzip.open('jetnet_logs.txt') as myfile:
        contents = myfile.read().decode('utf-8')
        print(contents)
with zipfile.ZipFile('data/task1/jetnet_logs.zip') as myzip:
    with myzip.open('jetnet_logs.txt') as myfile:
        contents = myfile.read().decode('utf-8')
df = pd.read_csv(myfile, delimiter='\t')
with zipfile.ZipFile('data/task1/jetnet_logs.zip') as myzip:
    with myzip.open('jetnet_logs.txt') as myfile:
        df = pd.read_csv(myfile, delimiter='\t')
with zipfile.ZipFile('data/task1/jetnet_logs.zip') as myzip:
    with myzip.open('jetnet_logs.txt') as myfile:
        df = pd.read_csv(myfile, delimiter='\t', header=None)
for r in df:
for r in df:
    print(r)
for r in df.iterrows():
    print(r)
for r in df.iterrows():
    print(r[1])
for r in df.iterrows()[1]:
    print(r)
for r in df.iterrows():
    print(r)
    print(r[1])
df['user_id'] = df['0'].str.split(':').str[0]
df['info'] = df['0'].str.split(': ').str[1]
df['user_id'] = df['user_id'].str.replace('@', '')
df['user_id'] = df[0].str.split(':').str[0]
df['info'] = df[0].str.split(': ').str[1]
df['user_id'] = df['user_id'].str.replace('@', '')
df['user_id'] = df[0].str.split(':').str[0]
df['info'] = df[0].str.split(': ').str[1]
df['user_id'] = df['user_id'].str.replace('@', '')
df = df.drop(0, axis=1)
df_temp = pd.DataFrame(columns=['user_id', 'session_num', 'action_time', 'action_name'])
for _, row in df.iterrows():
    actions = row['info'].split('->')
    for action in actions:
        parts = action_string.strip().split('(')
        action_name = parts[0].strip()
        action_time = pd.to_datetime(parts[1].strip(')'))
        new_row = {'user_id': row['user_id'], 'action_name': action_name, 'action_time': action_time}
        new_df = new_df.append(new_row, ignore_index=True)
for _, row in df.iterrows():
    actions = row['info'].split('->')
    for action in actions:
        parts = action.strip().split('(')
        action_name = parts[0].strip()
        action_time = pd.to_datetime(parts[1].strip(')'))
        new_row = {'user_id': row['user_id'], 'action_name': action_name, 'action_time': action_time}
        new_df = new_df.append(new_row, ignore_index=True)
for _, row in df.iterrows():
    actions = row['info'].split('->')
    for action in actions:
        parts = action.strip().split('(')
        action_name = parts[0].strip()
        action_time = parts[1].strip(')')
        new_row = {'user_id': row['user_id'], 'action_name': action_name, 'action_time': action_time}
        new_df = new_df.append(new_row, ignore_index=True)
for _, row in df.iterrows():
    actions = row['info'].split('->')
    for action in actions:
        parts = action.strip().split('(')
        action_name = parts[0].strip()
        action_time = parts[1].strip(')')
        new_row = {'user_id': row['user_id'], 'action_name': action_name, 'action_time': action_time}
        df_temp = df_temp.append(new_row, ignore_index=True)
for _, row in df.iterrows():
    actions = row['info'].split('->')
    for action in actions:
        parts = action.strip().split('(')
        action_name = parts[0].strip()
        action_time = parts[1].strip(')')
        new_row = {'user_id': row['user_id'], 'action_name': action_name, 'action_time': action_time}
        df_temp = df_temp.concat([df_temp, pd.DataFrame([new_row])], ignore_index=True)
for _, row in df.iterrows():
    actions = row['info'].split('->')
    for action in actions:
        parts = action.strip().split('(')
        action_name = parts[0].strip()
        action_time = parts[1].strip(')')
        new_row = {'user_id': row['user_id'], 'session_num': 0, 'action_name': action_name, 'action_time': action_time}
        df_temp.loc[len(df_temp)] = new_row
df_temp
df_temp.tail()
df[0]
df.iloc[0]
df.iloc[0].info
print(df.iloc[0].info)