python - 将循环中的打印语句输出转换为数据帧
问题描述
我正在尝试将以下代码从打印语句调整为数据帧输出。
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 看起来像:
信息 | 国家 |
---|---|
英格兰 英国 | 英国 |
法国巴黎 | 法国 |
意大利,gh 罗马 | 意大利 |
我试过以下没有运气
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看起来如下
信息 | 国家 |
---|---|
新的 | 英国 法国 意大利 |
解决方案
我建议使用字典而不是 2 个单独的列表,例如:
placeAndLocation = {
"england UK" : "UK",
"Paris France" : "france"
}
等等。
然后循环使用:
for place, location in placeAndLocation.items():
print("place: " + place)
print("location: " + location)
我发现这更容易,因为您可以轻松查看哪些数据字段与哪些值对齐,并且数据包含在一个变量中,从而更容易重新定义该行
推荐阅读
- flutter - 地图
在事先不知道数据的情况下访问任何类型的地图 - c++ - 我的程序不会打开文本文件。外流 CPP
- python - 如何从 Contour Next One USB 血糖仪中提取数据?
- reactjs - firebase 会自动加密密码吗?如果我想查看我在 Firebase 应用中输入的密码,该怎么做?
- pdf - 通过原始文本操作将整个 pdf 插入另一个
- google-api - Google API OAuth2 刷新令牌突然被撤销
- mongodb - Mongo:如何在(非常)大集合中删除重复项?
- android - Ionic React(电容器)中的 Google Play 游戏服务
- reactjs - Firestore 在哪里过滤并将数据添加到结果中
- c# - 在 Razor Pages 应用程序中获取 Web api 控制器方法的 URL?