我坚持使用我的熊猫脚本。
实际上,我正在处理两个 csv 文件(一个输入文件和另一个输出文件)。我想复制两列的所有行并进行计算,然后将其复制到另一个数据框(输出文件)。
列如下:
'lat', 'long','PHCount', 'latOffset_1', 'longOffset_1','PH_Lat_1', 'PH_Long_1', 'latOffset_2', 'longOffset_2', 'PH_Lat_2', 'PH_Long_2', 'latOffset_3', 'longOffset_3','PH_Lat_3', 'PH_Long_3', 'latOffset_4', 'longOffset_4','PH_Lat_4', 'PH_Long_4'.
我想获取 ‘lat’ 和 ‘latOffset_1’ 列,进行一些计算并将其放入我已经创建的另一个新列(’PH_Lat_1’)中。
我的职能是:
def calculate_latoffset(latoffset): #Calculating Lat offset.
a=(df2['lat']-(2*latoffset))
return a
主要代码:
for i in range(1,5):
print(i)
a='PH_lat_%d' % i
print (a)
b='latOffset_%d' % i
print (b)
df2.a = df2.apply(lambda x: calculate_latoffset(x[b]), axis=1)
由于列名仅相差 (1,2,3,4)。所以我想调用函数 calculate_latoffset 并一次性计算所有列的所有行(PH_Lat_1、PH_Lat_2、PH_Lat_3、PH_Lat_4)。
使用上面的代码时出现此错误:
basic_conversion.py:46: UserWarning: Pandas doesn't allow columns to be created via a new attribute name - see https://pandas.pydata.org/pandas-docs/stable/indexing.html#attribute-access
df2.a = df2.apply(lambda x: calculate_latoffset(x[b]), axis=1)
是否可以 ?请帮忙
原文由 Bushra Ghazal 发布,翻译遵循 CC BY-SA 4.0 许可协议
只需使用
df2['a']
而不是df2.a