使用Jype1的Python范围问题,不能用于循环每一列和每一行

问题描述

我想问你我有数据,我想打电话给包裹。包是Jar文件类型。

无论如何,我有一个csv文件

Ürünler01   Ürünler02   Ürünler03   Ürünler04
0   trafik  musavirligi na  na
1   aruba   2930f   48g poe
2   minilink    6363    721l    na
3   rendezvous  point   appliance   na
4   in uzak oku sayaç   na
... ... ... ... ...
79  inbpano kurulum kor panos
80  tn  card    değişim na
81  servis  kapı    kaynaklı    panel
82  evrensel    microwave   outdoor unit
83  hp  ekipman na  na

您会看到列名称为:“Ürünler01”,“Ürünler02”,“Ürünler03”,“Ürünler04”。

我想在下面应用我的“消息”功能及其功能

new=[]
for message in df['Ürünler01']:
      new.append(clean_messages(message))

在该代码之后,我将使用它的数据框,然后可以发布它。

df = pd.DataFrame (new)

结果是

df

    0
0   trafik
1   araba
2   minicik
3   rendezvous
4   in uzak
... ...
79  inbpano
80  en
81  servis
82  evrensel
83  hp

我的问题是我无法在Ürünler01,Ürünler02,Ürünler03和Ürünler04上都应用我的附加“消息”功能。我找不到iloc或loc,也无法理解python中的用法。正如我可以使用i和j进行循环的C编程应用一样,我可以完成所有行和列的功能。但是我的问题是这个问题我不能在所有列中使用我的函数

请帮助我。我在下面添加图片。我可以打印出“ 0”列,但我也需要将1,2,3画在屏幕截图上。我在等你的帮助

enter image description here

enter image description here

解决方法

您的问题尚不清楚数据框的最终形状,但是您可以遍历列名(对数据框进行默认迭代),然后依次遍历行,方法是按原始索引按名称对列进行索引>

import pandas as pd

# load dataframe
df = pd.read_csv("path_to_file.csv")

# start a new string series
series = pd.Series([],dtype=str)
for colname in df:               # iterate over the column names
    for message in df[colname]:  # iterate over the rows in the column
        series.append(clean_messages(message))

df_result = pd.DataFrame(series)  # optional,can directly use series

但是,您也许可以直接使用df.applyclean_messages应用于数据框中的每个值

df_result = pd.DataFrame()
for colname in df:
    df_result[colname] = df[colname].apply(clean_messages)