简体   繁体   English

如何打印pandas dataframe每一行的索引值、列名和列数据?

[英]How to print index value, column name, and column data for each row of pandas dataframe?

I have a dataframe that looks like this:我有一个看起来像这样的 dataframe:

dict={'475':['NaN', 0.6, 'NaN', 'NaN', 'NaN', 'NaN'],
      '575':['NaN', 'NaN', 0.11, 'NaN', 'NaN', 'NaN'],
      '675':[0.223, 'NaN',  'NaN', 0.913, 'NaN', 'NaN'],
      '1775':['NaN', 'NaN', 'NaN', 'NaN', 3.46, 'NaN'], 
      '1875':['NaN', 'NaN', 'NaN', 'NaN', 'NaN', 3.46] 
     } 

df=pd.DataFrame(dict,index=['33', '35', '36', '13', '41', '1222'])

在此处输入图像描述

I want to print a statement for each row that says:我想为每一行打印一条语句:

Location index_value is within column value of station column name ie for the first row of the dataframe this would be:位置index_value在站column namecolumn value内,即对于 dataframe 的第一行,这将是:

Location 33 is within 0.223km of station 675位置 33 距离 675 站 0.223 公里以内

I have tried:我努力了:

for index, column in df.iterrows():
    print('Farm number ' + str(index) + ' is within 5km of ' + str(column))

but this prints all the index values each time, and I can't see where to go next.但这每次都会打印所有索引值,我看不到接下来 go 的位置。

I'd really appreciate some guidance.我真的很感激一些指导。

You can replace NaN strings to NaN missing values and reshape by DataFrame.stack , so missing values are removed and you can loop with MultiIndex Series :您可以将NaN字符串替换为NaN缺失值并通过DataFrame.stack重塑,因此缺失值被删除,您可以使用MultiIndex Series循环:

for (i, c), v in df.replace('NaN',np.nan).stack().items():
    print(f"Location {i} is within {v}km of station {c}")

Location 33 is within 0.223km of station 675
Location 35 is within 0.6km of station 475
Location 36 is within 0.11km of station 575
Location 13 is within 0.913km of station 675
Location 41 is within 3.46km of station 1775
Location 1222 is within 3.46km of station 1875

You can also create DataFrame :您还可以创建DataFrame

df1 = df.replace('NaN',np.nan).stack().rename_axis(['i','c']).reset_index(name='v')
print (df1)
      i     c      v
0    33   675  0.223
1    35   475  0.600
2    36   575  0.110
3    13   675  0.913
4    41  1775  3.460
5  1222  1875  3.460

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM