pandas,读入tt_0c.csv和tt_100c.csv,按列拼接两个输入csv的第0列到新的csv。同时为新csv增加2个新行,第0行元素为tt,第1行元素为tt_0c,tt_100c.
时间: 2024-03-10 09:50:32 浏览: 78
好的,这个需求可以通过使用pandas库中的concat函数和DataFrame的loc属性来实现。
以下是代码示例:
```python
import pandas as pd
# 读入tt_0c.csv和tt_100c.csv
df1 = pd.read_csv('tt_0c.csv')
df2 = pd.read_csv('tt_100c.csv')
# 将两个DataFrame按列拼接
df = pd.concat([df1.iloc[:, 0], df2.iloc[:, 0]], axis=1)
# 添加两个新行
df.loc[-1] = 'tt'
df.loc[-2] = ['tt_0c', 'tt_100c']
df.index = df.index + 2 # 调整索引
# 输出到新的csv文件
df.to_csv('new.csv', index=False)
```
这段代码会将读入的两个csv文件的第0列按列拼接,并添加两个新行。注意,为了将新行插入到DataFrame的最前面,我们使用了DataFrame的loc属性和负数索引。最后,将新的DataFrame保存到new.csv文件中。注意,代码中的路径需要根据实际情况修改。
相关问题
html上传csv,后端flask报错:File "pandas\_libs\parsers.pyx", line 521, in pandas._libs.parsers.TextReader.__cinit__ pandas.errors.EmptyDataError: No columns to parse from file
这个错误通常表示你的CSV文件为空,或者里面没有任何列。你可以检查一下你的CSV文件,确保它包含至少一行,且每列都有标题。
另外,你可以尝试在读取CSV文件的时候指定一些参数,例如使用`header=None`来强制不读取第一行作为列名,或者使用`skip_blank_lines=True`来跳过空行。你可以参考下面的代码:
```
import pandas as pd
df = pd.read_csv('your_csv_file_path', header=None, skip_blank_lines=True)
# 检查读取后的数据
print(df.head())
```
pandas读取多个csv文件,如果csv文件名字包含tt_0c,则把第2列放到一个字典里面,键为tt,值为0c和第2列拼接。如果csv文件名字包含tt_100c,则把第2列放到一个字典里面,键为tt,值为100c和第2列。如果csv文件名字包含ss_0c,则把第2列放到一个字典里面,键为ss,值为0c和第2列拼接。如果csv文件名字包含ss_100c,则把第2列放到一个字典里面,键为ss,值为100c和第2列。
可以按照以下步骤实现:
1. 导入 pandas 库
2. 定义一个空字典,用于存放结果
3. 使用 glob.glob 函数找到所有符合条件的 csv 文件的路径
4. 遍历所有找到的 csv 文件路径
5. 使用 pandas 的 read_csv 函数读取 csv 文件
6. 判断文件名包含哪种情况,并将第二列及其它信息添加到字典中
7. 返回字典作为结果
下面是示例代码:
```python
import pandas as pd
import glob
result_dict = {}
# 找到所有符合条件的 csv 文件的路径
csv_files = glob.glob("*tt*.csv") + glob.glob("*ss*.csv")
# 遍历所有找到的 csv 文件路径
for file in csv_files:
# 使用 pandas 的 read_csv 函数读取 csv 文件
df = pd.read_csv(file)
# 判断文件名包含哪种情况,并将第二列及其它信息添加到字典中
if "tt_0c" in file:
tt = file.split("_")[0]
value = "0c_" + df.iloc[:, 1].astype(str)
result_dict.setdefault(tt, []).append(value.tolist())
elif "tt_100c" in file:
tt = file.split("_")[0]
value = "100c_" + df.iloc[:, 1].astype(str)
result_dict.setdefault(tt, []).append(value.tolist())
elif "ss_0c" in file:
ss = file.split("_")[0]
value = "0c_" + df.iloc[:, 1].astype(str)
result_dict.setdefault(ss, []).append(value.tolist())
elif "ss_100c" in file:
ss = file.split("_")[0]
value = "100c_" + df.iloc[:, 1].astype(str)
result_dict.setdefault(ss, []).append(value.tolist())
# 返回字典作为结果
print(result_dict)
```
需要注意的是,上述代码只是一个示例,具体实现可能需要根据实际情况进行调整。例如,如果需要将字典中的值转换为字符串,可以使用 join 函数。
阅读全文