【问题标题】:converting print statement output in loop into dataframe将循环中的打印语句输出转换为数据帧
【发布时间】:2021-04-30 06:10:01
【问题描述】:

我正在尝试将以下代码从打印语句调整为数据帧输出。

places = ['England UK','Paris FRANCE','ITALY,gh ROME','New']  
location=['UK','FRANCE','ITALY']

def on_occurence(pos,location):
   print (i,':',location)
   
root = aho_create_statemachine(location)

for i in places:
  aho_find_all(i, root, on_occurence)

上面代码的打印输出是

英国英国:英国

法国巴黎:法国

意大利,gh 罗马 : 意大利

我想要它,所以 df 看起来像:

message country
England UK UK
Paris FRANCE FRANCE
ITALY,gh ROME ITALY

我尝试了以下没有运气

places = ['England UK','Paris FRANCE','ITALY,gh ROME','New']  
location=['UK','FRANCE','ITALY']

df = pd.DataFrame(columns=["message","location"])
def on_occurence(pos,location):
   print (i,':',location)
df = df.append({"message":i,"location":location},ignore_index=True)

root = aho_create_statemachine(location)

for i in places:
  aho_find_all(i, root, on_occurence)

然而 df 看起来像下面这样

message country
NEW UK FRANCE ITALY

【问题讨论】:

    标签: python pandas dataframe loops string-matching


    【解决方案1】:

    我建议使用字典而不是 2 个单独的列表,例如:

    placeAndLocation = {
        "england UK" : "UK",
        "Paris France" : "france"
    }
    

    等等。

    然后循环这个用法:

    for place, location in placeAndLocation.items():
        print("place: " + place)
        print("location: " + location)
    

    我发现这更容易,因为您可以轻松查看哪些数据字段与哪些值对齐,并且数据包含在一个变量中,从而更容易重新定义一行

    【讨论】:

      【解决方案2】:
       df = pd.DataFrame(list(zip(places, location)), columns = ["Message", "Country"])
       print(df)
      

      我的输出:

               Message Country
      0     England UK      UK
      1   Paris FRANCE  FRANCE
      2  ITALY,gh ROME   ITALY
      

      如果你想在没有行索引的情况下打印它:

      print(df.to_string(index=False))
      

      这种情况下的输出是:

         Message Country
      England UK      UK
      Paris FRANCE  FRANCE
      ITALY,gh ROME   ITALY
      

      【讨论】:

        猜你喜欢
        • 2020-08-05
        • 2011-10-15
        • 1970-01-01
        • 2019-10-04
        • 1970-01-01
        • 1970-01-01
        • 2014-08-13
        • 2020-06-18
        • 1970-01-01
        相关资源
        最近更新 更多