我确定有人问过这个问题,但是找不到。.抱歉。
我有一个数据框:df,我想对A列和0至10行给出x的值
但是我需要循环执行此操作。
我在循环中使用了此代码,但是它不起作用。我知道我需要使用loc但看不到如何对列和行建立索引
colname='A'
df[colname][:10]=x
这确实有效,但它会弹出红色框100倍,说这不是一个好方法...
请参阅文档中的警告:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy C:\ Users \ FSC05 \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ ipykernel_launcher.py:18:SettingWithCopyWarning: 试图在DataFrame的切片副本上设置一个值
预先感谢您的帮助。
弗雷德
答案 0 :(得分:1)
对于Pandas,您应该注意避免 Python级循环。在这里,您可以使用iloc
进行整数位置索引:
x = df.iloc[:10, df.columns.get_loc('A')]
iloc
可用于设置和检索值:
x = 5
df.iloc[:10, df.columns.get_loc('A')] = x
这通常假定您的列标签是唯一的。