将列表嵌套转换成pandas数据框架很容易:
import pandas as pd
df = pd.DataFrame([[1,2,3],[3,4,5]])
但是我如何将df转换回列表嵌套列表的形式?
lol = df.what_to_do_now?
print lol
# [[1,2,3],[3,4,5]]
将列表嵌套转换成pandas数据框架很容易:
import pandas as pd
df = pd.DataFrame([[1,2,3],[3,4,5]])
但是我如何将df转换回列表嵌套列表的形式?
lol = df.what_to_do_now?
print lol
# [[1,2,3],[3,4,5]]
注意:我在 Stack Overflow 上看到很多情况,将 Pandas Series 或 DataFrame 转换为 NumPy 数组或纯 Python 列表是完全不必要的。如果您是该库的新手,请考虑仔细检查您需要的功能是否已由这些 Pandas 对象提供。
引用 @jpp 的 评论:
实际上,通常没有必要将 NumPy 数组转换为列表。
DataFrame.to_numpy
和 Series.to_numpy
方法。for elem in some_series.values.tolist():
,因为他们不知道可以迭代访问序列中的元素。我不确定这个答案有什么可怕的地方。 - AMCdef df_to_list_of_lists(df, index=False, header=False):
rows = []
if header:
rows.append(([df.index.name] if index else []) + [e for e in df.columns])
for row in df.itertuples():
rows.append([e for e in row] if index else [e for e in row][1:])
return rows
这很简单:
import numpy as np
list_of_lists = np.array(df)
DataFrame.values
或 DataFrame.to_numpy()
有何不同?不要担心它创建的是 NumPy 数组而不是纯 Python 列表。 - AMC# Empty list
row_list =[]
# Iterate over each row
for index, rows in df.iterrows():
# Create list for the current row
my_list =[rows.Date, rows.Event, rows.Cost]
# append the list to the final list
row_list.append(my_list)
# Print
print(row_list)