我试图通过删除一些值和更改DateTime格式来保存新的CSV文件。我没有什么错误,但现在它.第一个参数必须是熊猫对象的可迭代性,您传递了一个类型为"DataFrame“的对象
import pandas as pd
import calendar
from datetime import datetime
data1 = pd.read_csv("train.csv")
data1['date']= data1.datetime.apply(lambda x : x.split()[0])
data1['hour']= data1.datetime.apply(lambda x : x.split()[1].split(":")[0])
data1["weekday"]= data1.date.apply(lambda dateString : calendar.day_name[datetime.strptime(dateString,"%m/%d/%Y").weekday()])
data1["month"]= data1.date.apply(lambda dateString : calendar.month_name[datetime.strptime(dateString,"%m/%d/%Y").month])
data1.to_csv("output1.csv")
bookings = data1.groupby('month')['Total_booking'].mean().sort_values(ascending=False)
bookings.to_csv("output2.csv")
from pandas import get_dummies
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
data1['holiday'] = le.fit_transform(data1['holiday'])
newdata = pd.get_dummies(data,columns=['weekday','month','season','weather'])
data2 = pd.concat(newdata,axis=1)
newdata1 = data1.drop(['weekday','month','season','weather'],axis=1,inplace=true)
newdata1.to_csv('output/output3.csv')
TypeError Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_1496/4131473043.py in <module>
5
6 newdata = pd.get_dummies(data1,columns=['weekday','month','season','weather'])
----> 7 data2 = pd.concat(newdata,axis=1)
8
9 newdata1 = data1.drop(['weekday','month','season','weather'],axis=1,inplace=true)
~\anaconda3\lib\site-packages\pandas\util\_decorators.py in
wrapper(*args, **kwargs)
309 stacklevel=stacklevel,
310 )
--> 311 return func(*args, **kwargs)
312
313 return wrapper
~\anaconda3\lib\site-packages\pandas\core\reshape\concat.py
in concat(objs, axis, join, ignore_index, keys, levels,
names, verify_integrity, sort, copy)
292 ValueError: Indexes have overlapping values: ['a']
293 """
--> 294 op = _Concatenator(
295 objs,
296 axis=axis,
~\anaconda3\lib\site-packages\pandas\core\reshape\concat.py in
__init__(self, objs, axis, join, keys, levels, names,
ignore_index, verify_integrity, copy, sort)
327 ):
328 if isinstance(objs, (ABCSeries, ABCDataFrame, str)):
--> 329 raise TypeError(
330 "first argument must be an iterable of pandas "
331 f'objects, you passed an object of type "{type(objs).__name__}"'
TypeError: first argument must be an iterable of pandas objects, you passed an object of type "DataFrame"
发布于 2022-04-27 00:05:10
我认为您滥用了concat()函数。例如,在pd.concat函数中,输入应该是多个数据,并且函数将它们连接起来(因此,第一个参数必须是熊猫对象的可迭代性),这样函数就可以将它们组合成一个熊猫对象(例如,放入一个数据)。
我是在猜测,但是如果您试图获得数据文件中的所有列中的逻辑列,您可以这样做:
df.all(axis=1)
发布于 2022-08-24 00:50:53
当连接dataframes时-pd.concat()
需要一个列表的dataframes,所以如果df1
和df2
是两个dataframes那么您实现如下:
pd.concat([df1, df2],ignore_index=True)
如果您没有提供这个列表-那么您可以得到错误:
first argument must be an iterable of pandas objects, you passed an object of type DataFrame
也就是说,pd.concat(df1, df2)
将产生错误。
https://stackoverflow.com/questions/72017598
复制相似问题