python - 用户警告:Pandas 不允许通过新属性名称创建列
问题描述
我被我的熊猫脚本困住了。
实际上,我正在使用两个 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)
可能吗 ?请帮助
解决方案
只需使用df2['a']
而不是df2.a
推荐阅读
- http-headers - 即使我添加了正确的 SHA,也违反了 CSP
- ios - 如何使用日期对象(到 dd-MM-yyyy HH:mm:ss)在 Swift 的 NSPredicate 中使用它
- typescript - 有没有办法在 TypeScript 中递归地展开函数类型?
- pyspark - Pyspark:java.lang.ClassNotFoundException:找不到数据源:com.microsoft.sqlserver.jdbc.spark(SQL 数据池)
- c++ - “架构 x86_64 的未定义符号” - 再一次(小例子)
- flask - Flask 蓝图结构:如何将共享的 base.html 关联到特定于模块的模板
- python - 均衡 Pandas 系列的索引以适应 Dataframe
- python - 如何清理 Python 的外壳?
- python - 如何将图像(多维数组)数据拟合到 python 中的随机森林分类器中?
- xaml - Xamarin XAML,如何将元组列表绑定到可绑定布局