我正在尝试导入其中列出州和大学的txt文件。我利用defaultdict导入txt并将其解析到我拥有大学附属州的列表的位置。然后,如何将数据放入具有两列(州,地区名称)的熊猫数据框?到目前为止,没有任何效果。
我用以下方法构建了一个空的数据框:
ut = pd.DataFrame(columns = {'State', 'RegionName'})
并尝试了几种不同的方法,但没有一个奏效。
with open('ut.txt') as ut:
for line in ut:
if '[edit]' in line:
a = line.rstrip().split('[')
d[a[0]].append(a[1])
else:
b = line.rstrip().split(' ')
d[a[0]].append(b[0])
continue
这给我一个不错的清单:
defaultdict(<class 'list'>, {'State': ['edit]', 'School', 'School2', 'School3', 'School4', 'School5', 'School6', 'School7', 'School8'],
edit]
是原始txt文件的一部分,表示状态。之后的所有东西都是学校所在的城镇。
我想建立一个漂亮的2列数据框,其中状态为左列,所有学校在右边...
答案 0 :(得分:0)
考虑以下字典
data_dict = {"a": 1, "b": 2, "c": 3}
考虑到您要从该字典创建一个数据框并分别命名列 State
和 RegionName
,以下将完成工作
data_items = data_dict.items()
data_list = list(data_items)
df = pd.DataFrame(data_list, columns = ["State", "RegionName"])
哪个会得到
[In]: print(df)
[Out]:
State RegionName
0 a 1
1 b 2
2 c 3
如果在创建数据框时没有传递列的名称,考虑到列的名称为 a
和 b
,可以使用 pandas.DataFrame.rename
重命名列>
df = df.rename(columns = {"a": "State", "b": "RegionName"})
如果目标只是读取具有这样结构的 txt 文件
column1 column2
1 2
3 4
5 6
然后下面会做的工作
colnames=['State', 'RegionName']
df = pd.read_csv("file.txt", colnames, header=None)
请注意,如果列的名称已经是您想要的名称,请使用以下内容
df = pd.read_csv("file.txt")