我有两个列表,它们都包含我想写入 csv 文件的值。所以我做的第一件事就是将我的 csv 文件导入 pandas 数据框。然后我想写两个新列并将这两个列表添加到新列中。我的代码如下。请注意,原始 csv 文件中已有几列。
import pandas as pd
df = pd.read_csv('1.csv') ## 1.csv is the csv file I want to import.
a = [0.001, 5, 38, 70, 101, 140, 190]
b= [35, 65, 100, 160, 170, 200]
df['Start Time'] = a
df['End Time'] = b
df.to_csv('1.csv')
但是,当我运行这段代码时,它给了我如下错误,
ValueError: Length of values does not match length of index
如果有人知道如何解决这个问题,请告诉我。赞赏!
最佳答案
我认为您需要先创建 Series
,但是如果长度与数据框
:
df['Start Time'] = pd.Series(a, index = df.index[:len(a)])
df['End Time'] = pd.Series(b, index = df.index[:len(b)])
示例:
df = pd.DataFrame({'a':range(10)})
a = [0.001, 9, 46, 84, 122, 153, 198]
b= [39, 76, 114, 150, 158, 210]
df['Start Time'] = pd.Series(a, index = df.index[:len(a)])
df['End Time'] = pd.Series(b, index = df.index[:len(b)])
print (df)
a Start Time End Time
0 0 0.001 39.0
1 1 9.000 76.0
2 2 46.000 114.0
3 3 84.000 150.0
4 4 122.000 158.0
5 5 153.000 210.0
6 6 198.000 NaN
7 7 NaN NaN
8 8 NaN NaN
9 9 NaN NaN
关于Python:将列表写入 Pandas 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44782033/