简体   繁体   中英

Can't access DataFrame elements after reading from CSV

I'm creating a matrix and converting it into DataFrame after creation. Since I'm working with lots of data and it takes a while for creation I wanted to store the matrix into a CSV so I can just read it once is created. Here what I'm doing:

transitions = create_matrix(alpha, N)
# convert the matrix to a DataFrame 
df = pd.DataFrame(transitions, columns=list(tags), index=list(tags))

df.to_csv(r'D:\U\k\Desktop\prg\F_transition_' + language + '.csv')
df_r = pd.read_csv('transition_en.csv')

The fact is that after reading from CSV I got the error:

in get_loc raise KeyError(key). KeyError: 'O'

It seems this is thrown by those lines of code:

        if i == 0:
            tran_pr = df_r.loc['O', tag]
        else:
            tran_pr = df_r.loc[st[-1], tag]

I imagine that once the data is stored in a CSV, the reading of the file is not equivalent to the DataFrame I had before. How can I convert these lines of code to login like I did before? I tried to set index=False when creating the csv and also skip_blank_lines=True when reading. Nothing changes

df_r is like:

df_r

can you try:

import pandas as pd
df = pd.DataFrame([[1, 2], [2, 3]], columns = ['A', 'B'], index = ['C', 'D'])
print(df['A']['C'])

while using loc you need provide index first and then give column

df_r.loc[tag, 'O']

will work.

Don't use index = false, while importing, which will not include index in the dataframe

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM