【发布时间】:2019-02-05 17:02:41
【问题描述】:
我正在尝试从 Pandas 数据框创建 table_data 字典,如下所示:
import pandas as pd
d = {
'Name': ['John', 'Tom', 'Jack', 'Jill'],
'Age': [42, 53, 18, 22],
'City': ['London', 'New York', 'Bangkok', 'Warsaw']
}
df = pd.DataFrame(d)
table_data = dict(
headers = [[header] for header in list(df)],
columns = [df[header].tolist() for header in list(df)],
)
print(table_data)
有什么方法可以避免重复list(df) 两次并将这两个列表理解合二为一?
还是它违背了列表理解的目的,我应该使用普通的旧 for 循环,像这样?:
import pandas as pd
d = {
'Name': ['John', 'Tom', 'Jack', 'Jill'],
'Age': [42, 53, 18, 22],
'City': ['London', 'New York', 'Bangkok', 'Warsaw']
}
df = pd.DataFrame(d)
headers = []
columns = []
table_data = {
'headers': headers,
'columns': columns,
}
for header in list(df):
table_data['headers'].append([header])
table_data['columns'].append(df[header].tolist())
print(table_data)
【问题讨论】:
-
您不需要
list(df),只需使用df。转换似乎没用,可能需要时间。
标签: python pandas dataframe list-comprehension