如何使用字典理解更改 pandas 列属性?
How to change pandas column properties with dict comprehension?
我有一个包含多个数据帧的字典,如下所示:
d = {1 : df1, 2: df2}
现在我想使用字典理解来更改每个数据框中列的数据类型。
我想在一行中完成:
d[1].loc[:,'col1'] = d[1].loc[:,'col1'].dtype['float']
d[2].loc[:,'col1'] = d[2].loc[:,'col1'].dtype['float']
你是这个意思吗?
for k in d:
d[k]['col1'] = d[k]['col1'].astype('float')
您只需要:
def myFunc(df, col):
df[col] = df[col].astype(float)
return df
dict_ = dict(zip(dict_.keys(),[myFunc(df, 'col1') for df in dict_.values()]))
示例:
df1 = pd.DataFrame({
'col1':['10.4','1.9']
})
df2 = pd.DataFrame({
'col1':['101.4','11.9']
})
dict_ = {
1:df1,
2:df2
}
print(dict_[1].dtypes)
输出:
col1 object
dtype: object
然后,
def myFunc(df, col):
df[col] = df[col].astype(float)
return df
dict_ = dict(zip(dict_.keys(),[myFunc(df, 'col1') for df in dict_.values()]))
现在,
我们有,
print(dict_[1].dtypes)
输出:
col1 float64
dtype: object
d = {key:df['col1'].astype('float') for (key, df) in d.items()}
示例:
>>> df1 = pd.DataFrame({'col1':['11.1','1.1']})
>>> df2 = pd.DataFrame({'col1':['22.2','2.2']})
>>> d = {'1': df1, '2': df2}
>>> d['1'].dtypes
col1 object
dtype: object
>>> d = {key:df['col1'].astype('float') for (key, df) in d.items()}
>>> d['1'].dtypes
dtype('float64')
您可以将字典传递给 pandas.DataFrame.astype
d = {k: v.astype({'col1': float}) for k, v in d.items()}
我有一个包含多个数据帧的字典,如下所示:
d = {1 : df1, 2: df2}
现在我想使用字典理解来更改每个数据框中列的数据类型。
我想在一行中完成:
d[1].loc[:,'col1'] = d[1].loc[:,'col1'].dtype['float']
d[2].loc[:,'col1'] = d[2].loc[:,'col1'].dtype['float']
你是这个意思吗?
for k in d:
d[k]['col1'] = d[k]['col1'].astype('float')
您只需要:
def myFunc(df, col):
df[col] = df[col].astype(float)
return df
dict_ = dict(zip(dict_.keys(),[myFunc(df, 'col1') for df in dict_.values()]))
示例:
df1 = pd.DataFrame({
'col1':['10.4','1.9']
})
df2 = pd.DataFrame({
'col1':['101.4','11.9']
})
dict_ = {
1:df1,
2:df2
}
print(dict_[1].dtypes)
输出:
col1 object
dtype: object
然后,
def myFunc(df, col):
df[col] = df[col].astype(float)
return df
dict_ = dict(zip(dict_.keys(),[myFunc(df, 'col1') for df in dict_.values()]))
现在,
我们有,
print(dict_[1].dtypes)
输出:
col1 float64
dtype: object
d = {key:df['col1'].astype('float') for (key, df) in d.items()}
示例:
>>> df1 = pd.DataFrame({'col1':['11.1','1.1']})
>>> df2 = pd.DataFrame({'col1':['22.2','2.2']})
>>> d = {'1': df1, '2': df2}
>>> d['1'].dtypes
col1 object
dtype: object
>>> d = {key:df['col1'].astype('float') for (key, df) in d.items()}
>>> d['1'].dtypes
dtype('float64')
您可以将字典传递给 pandas.DataFrame.astype
d = {k: v.astype({'col1': float}) for k, v in d.items()}