Python 迭代给定的数据帧
我正在使用循环进行迭代:Python 迭代给定的数据帧,python,pandas,numpy,dictionary,for-loop,Python,Pandas,Numpy,Dictionary,For Loop,我正在使用循环进行迭代: df = 0 20 1 19 2 18 3 17 4 16 我有一个号码。但是我需要/想要得到数据帧,数据帧的长度为df lendf您几乎不需要迭代数据帧。列基本上是NumPy数组,具有类似于“elementwise”的数组超能力。您也不需要迭代NumPy数组 可能将您的任务表述为一个函数,并在数据帧或序列上使用apply方法。这将函数“应用”到列中的每个项,而不需要循环 但是,如果您真的只有一个这样的列,为什么还要使用数据帧呢?只需使用NumP
df =
0 20
1 19
2 18
3 17
4 16
我有一个号码。但是我需要/想要得到数据帧,数据帧的长度为df lendf您几乎不需要迭代数据帧。列基本上是NumPy数组,具有类似于“elementwise”的数组超能力。您也不需要迭代NumPy数组 可能将您的任务表述为一个函数,并在数据帧或序列上使用apply方法。这将函数“应用”到列中的每个项,而不需要循环 但是,如果您真的只有一个这样的列,为什么还要使用数据帧呢?只需使用NumPy数组或使用列的values属性即可。您需要使用iterrows,正如@code在上面的评论中指出的那样 以下是一个例子: 其中df为:
for k in df:
af = AffinityPropagation(preference=k).fit(X)
labels = af.labels_
score = silhouette_score(frechet, labels)
print("Preference: {0}, Silhouette score: {1}".format(k,score))
然后使用您的方法:
df = pd.DataFrame({0:range(20,0,-1)})
输出:
for k in df:
print(k)
for _,k in df.iterrows():
print(k.iloc[0])
此零是数据帧的列标题。您正在迭代数据帧列名
使用iErrors:
输出:
for k in df:
print(k)
for _,k in df.iterrows():
print(k.iloc[0])
这里,您将数据帧的每一行作为序列,使用iloc,您将获得本例中行中的第一个也是唯一的值。迭代数据帧意味着迭代其列-并且只有一个…我的意思是,df的每一个值都可能是指df中的索引k。iterrows@Mamed我知道,df中的k不符合你的意思,但符合我的解释-