Как установить индекс NaN (пустая ячейка) - PullRequest
0 голосов
/ 21 июня 2020

введите описание изображения здесь

gc = gspread.authorize(creds)
ws = gc.open("Data").worksheet("test3")

df = get_as_dataframe(ws).set_index('A')

# update
df._set_value('Bat', 'B', '11')
df._set_value('Bat', 'C', '12')
df._set_value('Bat', 'D', '13')
df.loc[ str('Fog')] = ''

df = df.loc[:, ~df.columns.str.contains('^Unnamed')]
print(df)

вывод

       B    C    D
A                 
Cat    5    6    9
Dog    3    1    7
Bat   11   12   13
NaN  NaN  NaN  NaN      
NaN  NaN  NaN  NaN
..   ...  ...  ...
NaN  NaN  NaN  NaN
NaN  NaN  NaN  NaN
NaN  NaN  NaN  NaN
NaN  NaN  NaN  NaN
Fog               

, и я хочу быть таким ... иметь 3 индекса Cat, Dog, Bat, и я хочу установить ячейку NaN на новую имя индекса Туман после изменения значения в индексе летучей мыши

       B    C    D
A                 
Cat    5    6    9
Dog    3    1    7
Bat   11   12   13
Fog  NaN  NaN  NaN
NaN  NaN  NaN  NaN
..   ...  ...  ...
NaN  NaN  NaN  NaN
NaN  NaN  NaN  NaN
NaN  NaN  NaN  NaN
NaN  NaN  NaN  NaN

1 Ответ

1 голос
/ 21 июня 2020

Вот мой подход: я получаю datafame без индекса NaN и добавляю к нему «Fog». Затем я добавляю строки NaN в вышеупомянутый фрейм данных, используя append:

import io 
import pandas as pd
import numpy as np

#Creation of an example of dataframe
s_e='''
  A   B    C    D
                 
Cat    5    6    9
Dog    3    1    7
Bat   11   12   13
'''
df= pd.read_csv(io.StringIO(s_e), sep='\s\s+', engine='python')

df=df.set_index('A')
df._set_value('Bat', 'B', '11')
df._set_value('Bat', 'C', '12')
df._set_value('Bat', 'D', '13')
for i in range(5):
    df1 = pd.DataFrame([[np.nan] * len(df.columns)], columns=df.columns, index=[np.nan])
    df=df.append(df1)
df=df.rename_axis("A")
print(df)


#Adding the row 'Fog'
df1=df[~df.index.isna()].append(pd.DataFrame([[np.nan] * len(df.columns)], columns=df.columns, index=['Fog']))
df=df1.append(df[df.index.isna()])
df=df.rename_axis("A")


print(df)

Вывод:

df:
        B     C     D
A                    
Cat   5.0   6.0   9.0
Dog   3.0   1.0   7.0
Bat  11.0  12.0  13.0
NaN   NaN   NaN   NaN
NaN   NaN   NaN   NaN
NaN   NaN   NaN   NaN
NaN   NaN   NaN   NaN
NaN   NaN   NaN   NaN

newdf:
        B     C     D
A                    
Cat   5.0   6.0   9.0
Dog   3.0   1.0   7.0
Bat  11.0  12.0  13.0
Fog   NaN   NaN   NaN
NaN   NaN   NaN   NaN
NaN   NaN   NaN   NaN
NaN   NaN   NaN   NaN
NaN   NaN   NaN   NaN
NaN   NaN   NaN   NaN
...