gpt4 book ai didi

python - 引用数据框对象的索引和列?

转载 作者:行者123 更新时间:2023-12-01 03:53:10 28 4
gpt4 key购买 nike

我有以下数据框。我想根据元素的列和索引创建一个新的数据框,但我无法引用它们的索引名称。

   AAA  BBB  CCC  DDD
A NaN NaN NaN NaN
B NaN NaN NaN NaN
C NaN NaN NaN NaN
D NaN NaN NaN NaN

代码:

df_ind = {'A' : '2014' ,'B': '2011' , 'C': '2007' , 'D' : '2009'}
df_col = {'AAA': '2011' ,'BBB': '2015' , 'CCC': '2007' , 'DDD' : '2012'}
df_tmp = pd.DataFrame(index = df_ind.keys() , columns =df_col.keys() )
print df_tmp
df4 = pd.DataFrame(np.where( int(df_col[df_tmp.column]-df_ind[tmp_df.index]) >1 , True, False) , index = df_ind.keys() , columns =df_col.keys() )
print df4

基本上,我想将其列和索引的日期之间的差异小于 2 年的元素设置为 True(除了 false)。

编辑1:修改问题以澄清它。

最佳答案

我认为你可以使用ixfillna :

df_tmp.ix['B', 'AAA'] = 'green'
df_tmp.fillna('red', inplace=True)
print (df_tmp)
AAA BBB CCC DDD
A red red red red
B green red red red
C red red red red
D red red red red

编辑:

import pandas as pd


df_ind = {'A' : '2014' ,'B': '2011' , 'C': '2007' , 'D' : '2009'}
df_col = {'AAA': '2011' ,'BBB': '2015' , 'CCC': '2007' , 'DDD' : '2012'}
df_tmp = pd.DataFrame(index = df_ind.keys() , columns =df_col.keys() )
df_tmp.index = df_tmp.index.sort_values()
print (df_tmp)
AAA BBB CCC DDD
A NaN NaN NaN NaN
B NaN NaN NaN NaN
C NaN NaN NaN NaN
D NaN NaN NaN NaN
#original df to df_orig
df_orig = df_tmp.copy()

#replace column and index name to values of dictionaries
df_tmp.columns = df_tmp.columns.map(df_col.get).astype(int)
df_tmp.index = df_tmp.index.map(df_ind.get).astype(int)
print (df_tmp)
2011 2015 2007 2012
2014 NaN NaN NaN NaN
2011 NaN NaN NaN NaN
2007 NaN NaN NaN NaN
2009 NaN NaN NaN NaN

#fill NaN values by column names
df_tmp = df_tmp.fillna(df_tmp.columns.to_series())

#substract index values from all dataframe
df = df_tmp.sub(df_tmp.index.to_series(), axis=0)
#replace original names
df.columns = df_orig.columns
df.index = df_orig.index
print (df)
AAA BBB CCC DDD
A -3 1 -7 -2
B 0 4 -4 1
C 4 8 0 5
D 2 6 -2 3

#compare by condition
print (df > 1)
AAA BBB CCC DDD
A False False False False
B False True False False
C True True False True
D True True False True

关于python - 引用数据框对象的索引和列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37922332/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com