python-3.x - Pandas 错误: Passing lists with missing labels

标签 python-3.x pandas csv dataframe syntax-error

抱歉,我已经通过使用extra_time的额外列来修改源csv数据来解决了这个问题。目前已解决。感谢您的答复Vishnudev和Anky
我有一个数据文件“main_file.csv”,其中的数据具有以下格式。

symbol,value
apple,340
ibm,194
当我尝试使用下面的程序将这些值吸收到与其相关的csv文件中时,出现错误,并在最后显示。
import datetime
import pandas as pd

main_list1 = ['apple', 'ibm']
df = pd.read_csv("main_file.csv")
df = df[df['symbol'].isin(main_list1)]

gb = df.groupby('symbol')
for name, group in gb:
    exact_time = str(datetime.datetime.now())
    with open('{}.csv'.format(name), 'a') as f:
        group.to_csv(f, header=False, index=True, columns=[exact_time, "lastPrice"])
预期输出:
对于“apple.csv”:
time,value
2020-04-08 22:00:11.863433,340
对于“ibm.csv”:
time,value
2020-04-08 22:00:11.863433,194
但是我收到的错误如下:
Traceback (most recent call last):
  File "D:\Testing\Trials.py", line 98, in <module>
    group.to_csv(f, header=False, index=True, columns=[exact_time, "lastPrice"])
  File "C:\Winpy\WPy64_368\python-3.6.8.amd64\lib\site-packages\pandas\core\generic.py", line 3202, in to_csv
    decimal=decimal,
  File "C:\Winpy\WPy64_368\python-3.6.8.amd64\lib\site-packages\pandas\io\formats\csvs.py", line 115, in __init__
    self.obj = self.obj.loc[:, cols]
  File "C:\Winpy\WPy64_368\python-3.6.8.amd64\lib\site-packages\pandas\core\indexing.py", line 1762, in __getitem__
    return self._getitem_tuple(key)
  File "C:\Winpy\WPy64_368\python-3.6.8.amd64\lib\site-packages\pandas\core\indexing.py", line 1289, in _getitem_tuple
    retval = getattr(retval, self.name)._getitem_axis(key, axis=i)
  File "C:\Winpy\WPy64_368\python-3.6.8.amd64\lib\site-packages\pandas\core\indexing.py", line 1954, in _getitem_axis
    return self._getitem_iterable(key, axis=axis)
  File "C:\Winpy\WPy64_368\python-3.6.8.amd64\lib\site-packages\pandas\core\indexing.py", line 1595, in _getitem_iterable
    keyarr, indexer = self._get_listlike_indexer(key, axis, raise_missing=False)
  File "C:\Winpy\WPy64_368\python-3.6.8.amd64\lib\site-packages\pandas\core\indexing.py", line 1553, in _get_listlike_indexer
    keyarr, indexer, o._get_axis_number(axis), raise_missing=raise_missing
  File "C:\Winpy\WPy64_368\python-3.6.8.amd64\lib\site-packages\pandas\core\indexing.py", line 1655, in _validate_read_indexer
    "Passing list-likes to .loc or [] with any missing labels "
KeyError: 'Passing list-likes to .loc or [] with any missing labels is no longer supported, see https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#deprecate-loc-reindex-listlike'
请帮助我解决传递列表错误。

最佳答案

您的代码中的to_csv调用具有不正确的column参数。另外,没有时间栏。

from datetime import datetime as dt

main_list1 = ['apple', 'ibm']
df = pd.read_csv("main_file.csv")
df = df.loc[df['symbol'].isin(main_list1)]

gb = df.groupby('symbol')
for name, group in gb:
    group = group.assign(time=dt.now()).drop(columns=['symbol'])
    group.to_csv(name + '.csv')

关于python-3.x - Pandas 错误: Passing lists with missing labels,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61105666/

相关文章:

python - 字典中的一把 key 。需要该键的第四个值吗?

python-3.x - Python 中的 EOL 错误

python - 迭代 pandas 数据框列并使用 if 语句进行评估,并将列值传递给空列表/字典

powershell - 调用ConvertTo-Csv后无法将简单对象保存为CSV

java - 从 Java 集合中提取数据

python - 带有多个蜘蛛和 CSVItemExporter 的 Scrapy CSV 标题行格式

python - Python 中的单引号、双引号和三引号有什么区别?

python - Pandas HDFStore 用于核外顺序读/写可变大小的集合

python - 如何在尊重基于时间的索引的同时正确使用 pandas diff

string - ConvertFrom-String和ghost属性