将循环中的打印语句输出转换为数据帧
converting print statement output in loop into dataframe
我正在尝试将以下代码从打印语句改编为数据帧输出。
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
我建议使用字典而不是 2 个单独的列表 EG:
placeAndLocation = {
"england UK" : "UK",
"Paris France" : "france"
}
等等。
然后循环使用:
for place, location in placeAndLocation.items():
print("place: " + place)
print("location: " + location)
我发现这更容易,因为您可以很容易地看到哪些数据字段与什么值对齐,并且数据包含在一个变量中,从而更容易重新定义行
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
我正在尝试将以下代码从打印语句改编为数据帧输出。
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 |
我建议使用字典而不是 2 个单独的列表 EG:
placeAndLocation = {
"england UK" : "UK",
"Paris France" : "france"
}
等等。
然后循环使用:
for place, location in placeAndLocation.items():
print("place: " + place)
print("location: " + location)
我发现这更容易,因为您可以很容易地看到哪些数据字段与什么值对齐,并且数据包含在一个变量中,从而更容易重新定义行
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