【发布时间】:2017-06-10 10:47:36
【问题描述】:
我有以下数据框
ipdb> csv_data
country_edited sale_edited date_edited transformation_edited
0 India 403171 21091956 1
1 Bhutan 394096 21091956 2
2 Nepal 361372 21091956 3
3 madhya 355883 21091956 4
4 sudan 262949 21091956 5
下面是我的代码
transfactor_count = 5.6
csv_data["transformation_edited"] = csv_data["transformation_edited"].apply(lambda x: x * transfactor_count)
但是上面的代码给了我一个错误
*** NameError: global name 'transfactor_count' is not defined
如何解决?
实际代码
for foreign_key in data_mapping_record.csvdatabasecolumnmapping_set.all():
data_type = foreign_key.data_type
trans_factor = foreign_key.tranformation_factor
if data_type == "Decimal":
import ipdb; ipdb.set_trace()
csv_data[foreign_key.table_column_name] = csv_data[foreign_key.table_column_name].apply(lambda x: x * trans_factor )
elif data_type in ["Date", "Datetime"]:
csv_data[foreign_key.table_column_name] = csv_data[foreign_key.table_column_name].apply( lambda d: datetime.strptime(d, dates[date]) )
【问题讨论】:
-
对我来说它有效,但为什么不使用
csv_data["transformation_edited"] = csv_data["transformation_edited"] * transfactor_count或csv_data["transformation_edited"] = csv_data["transformation_edited"].mul(transfactor_count)呢? -
或者还有其他代码会导致错误?
-
基本上我使用的是 django,我将从数据库中获取 transfactor_count
-
可以使用
csv_data["transformation_edited"].mul(foreign_key.tranformation_factor)吗? -
点赞
csv_data[foreign_key.table_column_name] = csv_data[foreign_key.table_column_name].mul(foreign_key.tranformation_factor)
标签: python pandas lambda pandas-apply