从ang SQL查询中,我得到了一个与此类似的数据框:
df = pd.DataFrame([
['ABC', 'Order'],
['ABC', 'Address'],
['ABC', 'Zip'],
['XYZ', 'Customer'],
['XYZ', 'Name']
],
columns=("Table", "Column"))
Table Column
0 ABC Order
1 ABC Address
2 ABC Zip
3 XYZ Customer
4 XYZ Name
我正在尝试将信息保存在一个单独的文件中,例如:
表ABC包含列:订单,地址,邮政编码
每个表一行(只能一次)。
我该如何实现?
我已经尝试过:
for table_name in df.TABLE_NAME:
output = "Table" + Table_name + "are" + (df.iloc[:,2])
但是我没有得到任何想要的输出。
答案 0 :(得分:1)
在按Table
名称分组的同时进行一些字符串操作可以为您带来期望。
import pandas as pd
if __name__ == '__main__':
df = pd.DataFrame([
['ABC', 'Order'],
['ABC', 'Address'],
['ABC', 'Zip'],
['XYZ', 'Customer'],
['XYZ', 'Name']
],
columns=("Table", "Column"))
pretty = pd.concat(
(df['Table'],
df.groupby("Table")['Column'].transform(lambda x: ", ".join(x))),
axis=1
).drop_duplicates()
for _, row in pretty.iterrows():
print("Table '{}' has columns: {}".format(row['Table'], row['Column']))
Table 'ABC' has columns: Order, Address, Zip
Table 'XYZ' has columns: Customer, Name